/**
 * CraftMarket – WooCommerce pages and CraftMarket Core templates loaded on every page.
 * Prefixes: .craftmarket-dt (B2B data table: shop table view, Home 4), .cmr (sourcing request form),
 * .cmq / .cmq-related / .cmq-trust (quote list page).
 * Every grid declares minmax(0, …) columns (framework 5.13).
 */

/* ======================================================================
 * B2B data table (template-parts/shop/table-open.php, cards/table-row.php, table-close.php)
 * ==================================================================== */
.craftmarket-dt { overflow: hidden; border: 1px solid var(--border-default); border-radius: var(--radius-lg); background: var(--bg-card); }
.craftmarket-dt__scroll { overflow-x: auto; }
.craftmarket-dt__table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 14px; }
.craftmarket-dt__table th {
  padding: 12px 14px;
  background: var(--bg-subtle);
  color: var(--text-heading);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  text-align: start;
  vertical-align: middle;
}
.craftmarket-dt__table th small { display: block; color: var(--text-secondary); font-size: 11px; font-weight: 400; }
.craftmarket-dt__table td { padding: 14px; border-top: 1px solid var(--border-default); color: var(--text-body); vertical-align: middle; }
.craftmarket-dt__table tbody tr { transition: background-color .2s ease; }
.craftmarket-dt__table tbody tr:hover { background: var(--bg-subtle); }
.craftmarket-dt__table tbody tr:has(input[data-row-select]:checked) { background: var(--color-primary-light); }
.craftmarket-dt__check { width: 44px; }
.craftmarket-dt__check input { width: 16px; height: 16px; margin: 0; accent-color: var(--color-primary); cursor: pointer; }
.craftmarket-dt__product { min-width: 240px; }
td.craftmarket-dt__product { white-space: nowrap; }
.craftmarket-dt__thumb { display: inline-block; width: 56px; height: 56px; margin-inline-end: 12px; vertical-align: middle; overflow: hidden; border-radius: var(--radius-sm); background: var(--bg-subtle); }
.craftmarket-dt__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.craftmarket-dt__name { display: inline-grid; gap: 4px; max-width: calc(100% - 64px); white-space: normal; vertical-align: middle; }
.craftmarket-dt__name > a { color: var(--text-heading); font-size: 14px; font-weight: 600; line-height: 1.3; }
.craftmarket-dt__name > a:hover { color: var(--color-primary); }
.craftmarket-dt__tags { display: flex; flex-wrap: wrap; gap: 4px; }
.craftmarket-dt__tags .craftmarket-tag { font-size: 11px; }
/* SKU under the name, stock under the lead time: six columns fit next to the filter sidebar. */
.craftmarket-dt__sku { color: var(--text-secondary); font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.craftmarket-dt__moq,
.craftmarket-dt__lead { white-space: nowrap; }
.craftmarket-dt__tiers dl { display: grid; gap: 2px; margin: 0; }
.craftmarket-dt__tiers dl > div { display: flex; justify-content: space-between; gap: 14px; }
.craftmarket-dt__tiers dt { color: var(--text-secondary); white-space: nowrap; }
.craftmarket-dt__tiers dd { margin: 0; color: var(--text-heading); font-weight: 700; font-variant-numeric: tabular-nums; }
.craftmarket-dt__stock { display: block; margin-top: 4px; color: var(--text-secondary); font-size: 13px; white-space: nowrap; }
.craftmarket-dt__dot { display: inline-block; width: 8px; height: 8px; margin-inline-end: 6px; border-radius: 50%; background: var(--color-warning); vertical-align: middle; }
.craftmarket-dt__dot.is-in { background: var(--color-success); }
.craftmarket-dt--no-stock .craftmarket-dt__stock { display: none; }
.craftmarket-dt__action { white-space: nowrap; }
.craftmarket-dt__action .craftmarket-btn { min-height: 34px; }
.craftmarket-dt__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  padding: 12px 16px;
  background: var(--color-primary);
  color: var(--color-primary-fg);
}
.craftmarket-dt__selected { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; }
.craftmarket-dt__selected svg { opacity: .7; }
.craftmarket-dt.has-selection .craftmarket-dt__selected svg { opacity: 1; }
.craftmarket-dt__bulk { display: flex; flex-wrap: wrap; gap: 8px; }
.craftmarket-dt__bar .craftmarket-btn--ghost,
.craftmarket-dt__bar .craftmarket-btn--light { border-color: rgba(255, 255, 255, .7); background: transparent; color: var(--color-primary-fg); }
.craftmarket-dt__bar .craftmarket-btn--ghost:hover,
.craftmarket-dt__bar .craftmarket-btn--light:hover { border-color: #FFFFFF; background: rgba(255, 255, 255, .12); }
.craftmarket-dt [data-craftmarket-bulk] { cursor: not-allowed; } /* clicking with no row selected says so (toast) */
.craftmarket-dt.has-selection [data-craftmarket-bulk] { opacity: 1; cursor: pointer; }

@media (max-width: 760px) {
  .craftmarket-dt__table { min-width: 0; }
  .craftmarket-dt__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .craftmarket-dt__table tbody tr { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 6px 10px; padding: 14px; border-top: 1px solid var(--border-default); }
  .craftmarket-dt__table tbody tr:first-child { border-top: 0; }
  .craftmarket-dt__table td { display: block; padding: 0; border: 0; }
  .craftmarket-dt__table td.craftmarket-dt__check { grid-row: 1 / span 7; width: auto; padding-top: 14px; }
  .craftmarket-dt__table td:not(.craftmarket-dt__check) { grid-column: 2; }
  .craftmarket-dt__table td.craftmarket-dt__product { display: flex; min-width: 0; margin-bottom: 4px; }
  .craftmarket-dt__thumb { width: 64px; height: 64px; }
  .craftmarket-dt__name { max-width: none; }
  .craftmarket-dt__table td[data-label]::before { content: attr(data-label) ": "; color: var(--text-secondary); }
  .craftmarket-dt__tiers dl { display: inline-flex; flex-wrap: wrap; gap: 4px 14px; vertical-align: top; }
  .craftmarket-dt__tiers dl > div { gap: 6px; }
  .craftmarket-dt__action { margin-top: 6px; }
  .craftmarket-dt__bar { position: sticky; bottom: 0; z-index: 2; }
  .craftmarket-dt__bulk,
  .craftmarket-dt__bulk .craftmarket-btn { flex: 1 1 auto; justify-content: center; }
}

/* ======================================================================
 * Sourcing request form (CraftMarket Core templates/rfq-form.php)
 * ==================================================================== */
.cmr { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 24px; border-radius: var(--radius-lg); background: var(--bg-card); color: var(--text-body); box-shadow: var(--shadow-lg); }
.cmr__title { margin: 0; font-size: 26px; line-height: 1.15; }
.cmr__text { margin: -8px 0 0; color: var(--text-secondary); font-size: 14px; }
.cmr .craftmarket-field > label { font-size: 13px; }
.cmr .craftmarket-field label small { color: var(--text-muted); font-weight: 400; }
.cmr .craftmarket-field input:not([type="file"]),
.cmr .craftmarket-field select { min-height: 42px; font-size: 14px; }
.cmr__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1fr); gap: 10px; align-items: end; }
.cmr__upload {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1.5px dashed var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--bg-subtle);
  color: var(--text-heading);
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}
.cmr__upload:hover,
.cmr__upload:focus-within { border-color: var(--color-primary); background: var(--color-primary-light); }
.cmr__upload > svg { flex: none; color: var(--color-primary); }
.cmr__upload > span { display: grid; gap: 2px; min-width: 0; }
.cmr__upload strong { font-size: 13px; font-weight: 600; }
.cmr__upload small { overflow: hidden; color: var(--text-secondary); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.cmr__upload input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.cmr__submit { min-height: 48px; }
.cmr__trust { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px; margin: 0; padding: 0; color: var(--text-secondary); font-size: 12px; list-style: none; }
.cmr__trust li { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; white-space: nowrap; }
.cmr__trust svg { flex: none; color: var(--color-primary); }

@media (max-width: 600px) {
  .cmr { padding: 18px; }
  .cmr__title { font-size: 22px; }
  .cmr__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cmr__row > :last-child { grid-column: 1 / -1; }
}

/* ======================================================================
 * Quote list (CraftMarket Core templates/quote-list.php) – Quote List Dashboard.png
 * ==================================================================== */
.cmq { display: grid; gap: 20px; }
.cmq__notice { margin: 0; }
.cmq__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.cmq__count { margin: 0; color: var(--text-secondary); font-size: 16px; }
.cmq__tools { display: flex; flex-wrap: wrap; gap: 10px; margin-inline-start: auto; }
.cmq__tools .craftmarket-btn { min-height: 42px; padding: 8px 16px; font-size: 14px; }
.cmq__import { cursor: pointer; }
.cmq__clear { color: var(--color-error); }
.cmq__clear:hover { border-color: var(--color-error); color: var(--color-error); }
.cmq__empty { max-width: 640px; }

.cmq__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); align-items: start; gap: 24px; }
.cmq__groups { display: grid; gap: 20px; min-width: 0; }

/* Supplier group */
.cmq__group { min-width: 0; overflow: hidden; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.cmq__group-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 16px 20px; border-bottom: 1px solid var(--border-default); }
.cmq__logo { display: block; flex: none; width: 44px; height: 44px; overflow: hidden; border: 1px solid var(--border-default); border-radius: 50%; background: var(--bg-subtle); }
.cmq__logo img { width: 100%; height: 100%; object-fit: cover; }
.cmq__supplier { margin: 0; font-size: 18px; line-height: 1.25; }
.cmq__supplier a { color: inherit; }
.cmq__supplier a:hover { color: var(--color-primary); }
.cmq__meta { display: inline-flex; align-items: center; gap: 6px; color: var(--text-secondary); font-size: 13px; }

.cmq__table-wrap { overflow-x: auto; }
.cmq__table { width: 100%; min-width: 640px; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
/* Same column widths in every supplier group, so the groups line up. */
.cmq__table th:nth-child(1) { width: 36%; }
.cmq__table th:nth-child(2) { width: 14%; }
.cmq__table th:nth-child(3) { width: 17%; }
.cmq__table th:nth-child(4) { width: 14%; }
.cmq__table th:nth-child(5) { width: 14%; }
.cmq__table th:nth-child(6) { width: 52px; }
.cmq__table th { padding: 10px 14px; background: var(--bg-subtle); color: var(--text-heading); font-size: 12px; font-weight: 600; text-align: start; white-space: nowrap; }
.cmq__table td { padding: 14px; border-top: 1px solid var(--border-default); color: var(--text-body); vertical-align: middle; }
.cmq__table small { display: block; margin-top: 4px; color: var(--text-secondary); font-size: 12px; }
.cmq__product { white-space: nowrap; }
.cmq__thumb { display: inline-block; margin-inline-end: 12px; vertical-align: middle; width: 56px; height: 56px; overflow: hidden; border-radius: var(--radius-sm); background: var(--bg-subtle); }
.cmq__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cmq__name { display: inline-grid; gap: 2px; max-width: calc(100% - 72px); vertical-align: middle; white-space: normal; color: var(--text-heading); font-weight: 600; line-height: 1.35; }
.cmq__name a { color: inherit; }
.cmq__name a:hover { color: var(--color-primary); }
.cmq__sku { color: var(--text-secondary); overflow-wrap: anywhere; }
.cmq__qty-field,
.cmq__target-field { display: inline-flex; align-items: center; width: 100%; max-width: 116px; min-height: 38px; overflow: hidden; border: 1px solid var(--border-strong); border-radius: var(--input-radius); background: var(--bg-input); }
.cmq__qty-field input,
.cmq__target-field input { width: 100%; min-width: 0; min-height: 36px; padding: 0 10px; border: 0; background: none; color: var(--text-heading); font: inherit; font-size: 14px; -moz-appearance: textfield; appearance: textfield; }
.cmq__qty-field input::-webkit-inner-spin-button { -webkit-appearance: none; }
.cmq__qty-field > span { display: grid; flex: none; align-self: stretch; place-items: center; padding: 0 10px; border-inline-start: 1px solid var(--border-default); background: var(--bg-subtle); color: var(--text-secondary); font-size: 12px; }
.cmq__target-field > span { flex: none; padding-inline-start: 10px; color: var(--text-secondary); }
.cmq__qty-field:focus-within,
.cmq__target-field:focus-within { border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--ui-focus-ring); }
.cmq__moq.is-below { color: var(--color-error); font-weight: 600; }
.cmq__price { overflow-wrap: anywhere; }
.cmq__price strong { color: var(--text-heading); font-size: 14px; }
.cmq__muted { color: var(--text-muted); }
.cmq__remove { width: 44px; text-align: center; }
.cmq__remove-btn { display: inline-grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--text-secondary); cursor: pointer; }
.cmq__remove-btn:hover { background: var(--color-error-bg); color: var(--color-error); }

.cmq__group-foot { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; padding: 16px 20px 20px; border-top: 1px solid var(--border-default); }
.cmq__group-foot .craftmarket-field > label,
.cmq__group-foot .craftmarket-label { font-size: 13px; }
.cmq__group-foot textarea { min-height: 76px; }
.cmq__drop { position: relative; display: grid; place-items: center; gap: 4px; min-height: 76px; padding: 12px; border: 1px dashed var(--border-strong); border-radius: var(--input-radius); background: var(--bg-subtle); color: var(--text-secondary); font-size: 13px; text-align: center; cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
.cmq__drop:hover,
.cmq__drop:focus-within { border-color: var(--color-primary); background: var(--color-primary-light); }
.cmq__drop input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.cmq__drop-text { color: var(--text-heading); font-weight: 600; }
.cmq__drop small { color: var(--text-muted); font-size: 12px; }
.cmq__drop-list { display: grid; gap: 4px; color: var(--text-body); font-size: 12px; }
.cmq__drop-list:empty { display: none; }
.cmq__drop--large { min-height: 120px; }

/* Summary column */
.cmq__summary { position: sticky; top: calc(var(--header-height) + 16px); display: grid; gap: 16px; padding: 22px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.cmq__summary-title { margin: 0; font-size: 22px; }
.cmq__stats { display: grid; margin: 0; }
.cmq__stats > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border-default); }
.cmq__stats dt { color: var(--text-secondary); font-size: 14px; }
.cmq__stats dd { margin: 0; color: var(--text-heading); font-size: 18px; font-weight: 700; text-align: end; }
.cmq__summary .craftmarket-field > label,
.cmq__summary .craftmarket-label,
.cmq__fieldset legend { color: var(--text-heading); font-size: 13px; font-weight: 600; }
.cmq__summary .craftmarket-field input,
.cmq__summary .craftmarket-field select { min-height: 42px; font-size: 14px; }
.cmq__summary .craftmarket-field input[name="port"] { margin-top: 8px; }
.cmq__fieldset { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 0; border: 0; }
.cmq__fieldset legend { margin-bottom: 8px; padding: 0; }
.cmq__radios { gap: 8px; }
.cmq__radios .craftmarket-check,
.cmq__summary > .craftmarket-check { font-size: 14px; }
.cmq__submit { min-height: 50px; font-size: 15px; }

/* Trust box (template-parts/quote/trust.php) */
.cmq-trust { display: flex; gap: 14px; padding: 16px; border-radius: var(--card-radius); background: var(--color-accent-light); }
.cmq-trust__icon { flex: none; color: var(--color-accent-hover); }
.cmq-trust__title { margin: 0 0 8px; color: var(--text-heading); font-family: var(--font-heading); font-size: 16px; font-weight: var(--heading-weight); }
.cmq-trust__list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.cmq-trust__list li { display: flex; align-items: flex-start; gap: 8px; color: var(--text-body); font-size: 13px; }
.cmq-trust__list svg { flex: none; margin-top: 3px; color: var(--color-success); stroke-width: 2.2; }

/* Frequently sourced together (template-parts/quote/related.php) */
.cmq-related { margin-top: calc(var(--section-space) / 2); }
.cmq-related .craftmarket-section-head { margin-bottom: 20px; }

/* ======================================================================
 * Quick order (CraftMarket Core templates/quick-order.php), [craftmarket_quick_order]
 * ==================================================================== */
.cmqo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); align-items: start; gap: 24px; }
.cmqo__card { display: grid; gap: 20px; min-width: 0; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.cmqo__head { display: grid; gap: 6px; }
.cmqo .cmqo__title { margin: 0; font-size: 24px; }
.cmqo .cmqo__intro { max-width: 60ch; margin: 0; color: var(--text-secondary); font-size: 15px; }
.cmqo__field textarea { min-height: 220px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; line-height: 1.7; direction: ltr /*rtl:ignore*/; text-align: start; }
.cmqo .cmqo__hint { margin: 0; color: var(--text-muted); font-size: 13px; }
.cmqo__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 20px; border-top: 1px solid var(--border-default); }
.cmqo__submit { display: flex; flex-wrap: wrap; gap: 12px; }
.cmqo__load { cursor: pointer; }
.cmqo__load:focus-within { outline: 2px solid var(--border-focus); outline-offset: 2px; }
.cmqo .craftmarket-btn--outline.is-loading::after { border-color: var(--color-primary); border-right-color: transparent; }
.cmqo__status:empty { display: none; }
.cmqo .cmqo__status { margin: 0; padding: 12px 16px; border-radius: var(--radius-md); background: var(--color-info-bg); color: var(--text-heading); font-size: 14px; }
.cmqo__status[data-state="success"] { background: var(--color-success-bg); }
.cmqo__status[data-state="warning"] { background: var(--color-warning-bg); }
.cmqo__status[data-state="error"] { background: var(--color-error-bg); }
.cmqo__status a { margin-inline-start: 6px; color: inherit; font-weight: 600; text-decoration: underline; }

/* Help column */
.cmqo__help { position: sticky; top: calc(var(--header-height) + 16px); display: grid; gap: 14px; padding: 24px; border-radius: var(--card-radius); background: var(--bg-subtle); }
.cmqo .cmqo__help-title { margin: 0; font-size: 20px; }
.cmqo .cmqo__steps { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: cmqo-step; }
.cmqo__steps li { position: relative; padding-inline-start: 38px; color: var(--text-body); font-size: 14px; counter-increment: cmqo-step; }
.cmqo__steps li::before { content: counter(cmqo-step); position: absolute; top: -2px; inset-inline-start: 0; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--color-primary); color: var(--color-primary-fg); font-size: 13px; font-weight: 700; }
.cmqo .cmqo__help-label { margin: 6px 0 0; color: var(--text-heading); font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.cmqo .cmqo__sample { margin: 0; padding: 12px 14px; overflow-x: auto; border: 1px solid var(--border-default); border-radius: var(--radius-md); background: var(--bg-card); color: var(--text-heading); font-size: 13px; line-height: 1.7; direction: ltr /*rtl:ignore*/; text-align: left /*rtl:ignore*/; }
.cmqo .cmqo__note { margin: 0; color: var(--text-secondary); font-size: 13px; }

@media (max-width: 1099px) {
  .cmqo { grid-template-columns: minmax(0, 1fr); }
  .cmqo__help { position: static; }
}
@media (max-width: 600px) {
  .cmqo__card { padding: 20px; }
  .cmqo .cmqo__title { font-size: 22px; }
  .cmqo__actions, .cmqo__submit { flex-direction: column; align-items: stretch; }
  .cmqo__submit { flex-direction: column-reverse; }
  .cmqo__actions .craftmarket-btn { width: 100%; }
}

/* ======================================================================
 * Trade account application (CraftMarket Core templates/trade-application.php)
 * – Trade Account Application.png
 * ==================================================================== */
.cmta-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); align-items: start; gap: 24px; }
.cmta { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; min-width: 0; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.cmta [hidden] { display: none !important; }

/* Steps */
.cmta .cmta__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0 0 24px; border-bottom: 1px solid var(--border-default); list-style: none; counter-reset: none; }
.cmta .cmta__step { position: relative; display: flex; align-items: center; gap: 10px; min-width: 0; margin: 0; padding: 0; }
.cmta__step:not(:last-child)::after { content: ""; flex: 1 1 auto; min-width: 12px; height: 2px; border-radius: 2px; background: var(--border-default); }
.cmta__step.is-done:not(:last-child)::after { background: var(--color-primary); }
.cmta__step-num { display: grid; flex: none; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--bg-subtle); color: var(--text-secondary); font-size: 14px; font-weight: 700; }
.cmta__step.is-current .cmta__step-num,
.cmta__step.is-done .cmta__step-num { background: var(--color-primary); color: var(--color-primary-fg); }
.cmta__step-text { display: grid; min-width: 0; line-height: 1.3; }
.cmta__step-text strong { overflow: hidden; color: var(--text-heading); font-size: 14px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.cmta__step-text small { color: var(--text-muted); font-size: 12px; }
.cmta__step:not(.is-current):not(.is-done) .cmta__step-text strong { color: var(--text-secondary); }

/* Panels */
.cmta__panel { display: grid; gap: 20px; min-width: 0; margin: 0; padding: 0; border: 0; }
.cmta .cmta__legend { float: left; width: 100%; margin: 0 0 -14px; padding: 0; color: var(--text-heading); font-family: var(--font-heading); font-size: 24px; font-weight: var(--heading-weight); line-height: 1.25; }
.cmta .cmta__lead { margin: 0; color: var(--text-secondary); font-size: 15px; }
.cmta .cmta__help { color: var(--text-muted); font-size: 12px; }
.cmta p.cmta__help { margin: 0; font-size: 13px; }
.cmta__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
/* Some country names fall back to a taller font and stretch the select. */
.cmta .craftmarket-field select { height: 46px; }

/* Business type cards */
.cmta__types { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 4px; }
.cmta__type { position: relative; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 16px 14px; border: 1px solid var(--border-default); border-radius: var(--input-radius); background: var(--bg-card); cursor: pointer; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.cmta__type:hover { border-color: var(--border-strong); }
.cmta__type input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cmta__type svg { margin-bottom: 6px; color: var(--text-heading); }
.cmta__type strong { color: var(--text-heading); font-size: 14px; font-weight: 600; line-height: 1.3; }
.cmta__type small { color: var(--text-muted); font-size: 12px; line-height: 1.4; }
.cmta__type:has(input:checked) { border-color: var(--color-primary); background: var(--color-primary-light); box-shadow: inset 0 0 0 1px var(--color-primary); }
.cmta__type:has(input:checked) svg { color: var(--color-primary); }
.cmta__type:has(input:checked)::after { content: ""; position: absolute; top: 10px; inset-inline-end: 10px; width: 18px; height: 18px; border-radius: 50%; background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; }
.cmta__type:has(input:focus-visible) { outline: 2px solid var(--border-focus); outline-offset: 2px; }

/* Product interests: toggle chips */
.cmta .cmta__interests { grid-column: 1 / -1; margin: 0; padding: 0; border: 0; }
.cmta__interests > legend { margin-bottom: 8px; padding: 0; }
.cmta__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cmta__chip { position: relative; cursor: pointer; }
.cmta__chip input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cmta__chip span { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 14px; border: 1px solid var(--border-strong); border-radius: 9999px; color: var(--text-body); font-size: 14px; transition: border-color .2s ease, background-color .2s ease, color .2s ease; }
.cmta__chip:hover span { border-color: var(--text-heading); }
.cmta__chip input:checked + span { border-color: var(--color-primary); background: var(--color-primary-light); color: var(--text-heading); }
.cmta__chip input:checked + span::before { content: "✓"; color: var(--color-primary); font-weight: 700; }
.cmta__chip input:focus-visible + span { outline: 2px solid var(--border-focus); outline-offset: 2px; }

/* Review */
.cmta .cmta__review { display: grid; margin: 0; border: 1px solid var(--border-default); border-radius: var(--input-radius); }
.cmta__review > div { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 4px 16px; padding: 12px 16px; }
.cmta__review > div + div { border-top: 1px solid var(--border-default); }
.cmta__review dt { color: var(--text-secondary); font-size: 14px; }
.cmta__review dd { margin: 0; color: var(--text-heading); font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }

/* Navigation */
.cmta__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 24px; border-top: 1px solid var(--border-default); }
.cmta__nav [data-step-next],
.cmta__nav [data-step-submit] { margin-inline-start: auto; }

/* Why trade */
.cmta-why { position: sticky; top: calc(var(--header-height) + 16px); display: grid; gap: 18px; padding: 28px; border-radius: var(--card-radius); background: var(--bg-dark); color: var(--text-inverse-muted); }
.cmta-why .cmta-why__title { margin: 0; color: var(--text-inverse); font-size: 26px; }
.cmta-why .cmta-why__lead { margin: 0; font-size: 15px; }
.cmta-why .cmta-why__list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.cmta-why__list li { display: flex; gap: 14px; margin: 0; font-size: 14px; line-height: 1.5; }
.cmta-why__list strong { display: block; color: var(--text-inverse); font-size: 15px; font-weight: 600; }
.cmta-why__icon { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-primary-fg); }
.cmta-why .cmta-why__flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 4px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(255, 255, 255, .14); list-style: none; counter-reset: cmta-flow; text-align: center; }
.cmta-why__flow li { position: relative; display: grid; justify-items: center; gap: 2px; margin: 0; counter-increment: cmta-flow; font-size: 12px; line-height: 1.35; }
.cmta-why__flow li::before { content: counter(cmta-flow); display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 6px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 50%; color: var(--text-inverse); font-weight: 700; }
.cmta-why__flow li.is-current::before { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-primary-fg); }
.cmta-why__flow strong { color: var(--text-inverse); font-size: 13px; font-weight: 600; }

/* Submitted */
.cmta-done { display: grid; justify-items: center; gap: 10px; max-width: 640px; margin: 0 auto; padding: 48px 28px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); text-align: center; }
.cmta-done svg { color: var(--color-success); }
.cmta-done h2 { margin: 0; font-size: 26px; }
.cmta-done p { margin: 0; color: var(--text-secondary); }

@media (max-width: 1099px) {
  .cmta-layout { grid-template-columns: minmax(0, 1fr); }
  .cmta-why { position: static; }
}
@media (max-width: 767px) {
  .cmta { padding: 20px; }
  .cmta__grid { grid-template-columns: minmax(0, 1fr); }
  .cmta__types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cmta__type:last-child:nth-child(odd) { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; }
  .cmta__type:last-child:nth-child(odd) svg { grid-row: span 2; margin: 0; }
  .cmta .cmta__steps { display: flex; gap: 8px; }
  .cmta .cmta__step { flex: none; }
  .cmta__step:not(:last-child)::after { flex: none; width: 10px; min-width: 0; }
  .cmta .cmta__step { gap: 6px; }
  .cmta__step-num { width: 30px; height: 30px; font-size: 13px; }
  .cmta__step-text strong { font-size: 13px; }
  .cmta .cmta__step.is-current { flex: 1 1 auto; }
  .cmta__step:not(.is-current) .cmta__step-text { display: none; }
  .cmta__step-text small { display: none; }
  .cmta .cmta__legend { font-size: 22px; }
  .cmta__review > div { grid-template-columns: minmax(0, 1fr); }
  .cmta-why { padding: 22px; }
}
@media (max-width: 420px) {
  .cmta__nav .craftmarket-btn { flex: 1 1 auto; }
}

@media (max-width: 1099px) {
  .cmq__layout { grid-template-columns: minmax(0, 1fr); }
  .cmq__summary { position: static; }
}
@media (max-width: 767px) {
  /* Rows become cards; the cells show their labels. */
  .cmq__table { min-width: 0; }
  .cmq__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .cmq__table tbody tr { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 16px; border-top: 1px solid var(--border-default); }
  .cmq__table td { display: grid; gap: 4px; padding: 0; border: 0; }
  .cmq__table td[data-label]::before { content: attr(data-label); color: var(--text-muted); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
  .cmq__table td.cmq__product { display: block; grid-column: 1 / -1; padding-inline-end: 36px; }
  .cmq__table td.cmq__product::before { content: none; }
  .cmq__table td.cmq__price { display: block; }
  .cmq__table td.cmq__price::before { display: block; margin-bottom: 4px; }
  .cmq__remove { position: absolute; top: 12px; inset-inline-end: 8px; width: auto; }
  .cmq__qty-field, .cmq__target-field { width: 100%; }
  .cmq__group-head { padding: 14px 16px; }
  .cmq__group-foot { grid-template-columns: minmax(0, 1fr); padding: 14px 16px 16px; }
  .cmq__summary { padding: 18px; }
  .cmq__tools { width: 100%; }
  .cmq__tools .craftmarket-btn { flex: 1 1 0; padding-inline: 10px; font-size: 13px; white-space: nowrap; }
}

/* ======================================================================
 * WooCommerce notices (classic markup): a quiet card with a coloured edge, the button as a link.
 * WooCommerce focuses the notice for screen readers; the outline box is dropped for that focus.
 * ==================================================================== */
.woocommerce-notices-wrapper:empty { display: none; }
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin: 0 0 24px;
  padding: 14px 18px;
  border: 1px solid var(--border-default);
  border-inline-start: 3px solid var(--color-success);
  border-radius: var(--radius-md);
  background: var(--bg-card);
  box-shadow: var(--shadow-xs);
  color: var(--text-heading);
  font-size: 14px;
  line-height: 1.5;
  list-style: none;
}
body .woocommerce-info { border-inline-start-color: var(--color-accent); }
body .woocommerce-error { flex-direction: column; align-items: flex-start; border-inline-start-color: var(--color-error); }
body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before { position: static; flex: none; margin: 0; color: var(--color-success); }
body .woocommerce-info::before { color: var(--color-accent-hover); }
body .woocommerce-error::before { display: none; }
body .woocommerce-error li { margin: 0; }
body .woocommerce-message:focus,
body .woocommerce-info:focus,
body .woocommerce-error:focus { outline: 0; }
body .woocommerce-message .button,
body .woocommerce-info .button {
  order: 2;
  float: none;
  min-height: 0;
  margin-inline-start: auto;
  padding: 0 0 2px;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: none;
  color: var(--text-heading);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}
body .woocommerce-message .button:hover,
body .woocommerce-info .button:hover { background: none; color: var(--color-primary); }

/* ======================================================================
 * WooCommerce Cart / Checkout blocks: theme buttons, inputs, cards and type instead of the
 * block defaults (dark square buttons, black stars, sad-face empty cart icon).
 * ==================================================================== */
/* Buttons */
body .wc-block-components-button:not(.is-link),
body .wc-block-grid__product-add-to-cart .wp-block-button__link,
body .wp-block-woocommerce-empty-cart-block .wp-block-button__link {
  min-height: 48px;
  padding: 12px 26px;
  border: 0;
  border-radius: var(--btn-radius);
  background: var(--color-primary);
  color: var(--color-primary-fg);
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: none;
  transition: background-color .2s ease, color .2s ease;
}
body .wc-block-components-button:not(.is-link):hover,
body .wc-block-components-button:not(.is-link):focus,
body .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
body .wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover { background: var(--color-primary-hover); color: var(--color-primary-fg); }
body .wc-block-components-button:not(.is-link):focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; box-shadow: none; }
body .wc-block-components-button.is-link { color: var(--color-primary); }
body .wc-block-grid__product-add-to-cart .wp-block-button__link { min-height: 40px; padding: 9px 20px; font-size: 14px; }
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button { width: 100%; min-height: 54px; font-size: 16px; }

/* Inputs */
body .wc-block-components-text-input.wc-block-components-text-input input[type],
body .wc-block-components-text-input.wc-block-components-text-input textarea,
body .wc-blocks-components-select .wc-blocks-components-select__select,
body .wc-block-components-textarea,
body .wc-block-components-totals-coupon input[type] {
  border: 1px solid var(--border-strong);
  border-radius: var(--input-radius);
  background: var(--bg-input);
  color: var(--text-heading);
  font-family: var(--font-body);
  transition: border-color .2s ease, box-shadow .2s ease;
}
body .wc-block-components-text-input.wc-block-components-text-input input[type]:focus,
body .wc-block-components-text-input.wc-block-components-text-input textarea:focus,
body .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body .wc-block-components-textarea:focus { border-color: var(--border-focus); outline: 0; box-shadow: 0 0 0 3px var(--ui-focus-ring); }
body .wc-block-components-text-input label,
body .wc-blocks-components-select .wc-blocks-components-select__label { color: var(--text-secondary); }
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { border-color: var(--border-strong); border-radius: 4px; background: var(--bg-input); }
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { border-color: var(--color-primary); background: var(--color-primary); }
body .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--color-primary-fg); }
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus { outline: 2px solid var(--border-focus); outline-offset: 2px; }
body .wc-block-components-radio-control__input:checked { border-color: var(--color-primary); }
body .wc-block-components-radio-control__input:checked::before { background: var(--color-primary); }

/* Type and links */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { color: var(--text-body); font-family: var(--font-body); }
body .wc-block-components-title.wc-block-components-title,
body .wc-block-cart__totals-title,
body .wc-block-components-checkout-order-summary__title-text { color: var(--text-heading); font-family: var(--font-heading); font-weight: var(--heading-weight); text-transform: none; letter-spacing: 0; }
body .wc-block-cart .wc-block-cart__totals-title { padding-inline: 0; color: var(--text-heading); font-family: var(--font-heading); font-size: 24px; font-weight: var(--heading-weight); letter-spacing: 0; text-transform: none; }
body .wc-block-components-checkout-step__title { font-size: 22px; }
body .wc-block-components-product-name { color: var(--text-heading); font-family: var(--font-heading); font-size: 17px; font-weight: var(--heading-weight); text-decoration: none; }
body a.wc-block-components-product-name:hover { color: var(--color-primary); }
body .wc-block-components-product-metadata { color: var(--text-secondary); font-size: 13px; }
.wp-block-woocommerce-checkout a:not(.wc-block-components-button):not(.wc-block-components-product-name),
.wp-block-woocommerce-cart .wc-block-components-panel__button { color: var(--color-primary); }
body .wc-block-components-totals-item__label { color: var(--text-body); }
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--text-heading); font-family: var(--font-heading); font-size: 24px; font-weight: var(--heading-weight); }

/* Cart items */
body .wc-block-cart-items__header { color: var(--text-secondary); font-size: 12px; font-weight: 600; letter-spacing: .12em; }
body .wc-block-cart-items,
body .wc-block-cart-items .wc-block-cart-items__row { border-color: var(--border-default); }
body .wc-block-cart-item__image img { border-radius: var(--radius-md); background: var(--bg-subtle); }
body .wc-block-cart-item__total { color: var(--text-heading); font-weight: 600; }
body .wc-block-components-quantity-selector { border-color: var(--border-strong); border-radius: var(--radius-pill); background: var(--bg-input); overflow: hidden; }
body .wc-block-components-quantity-selector::after { content: none; }
body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { color: var(--text-heading); font-weight: 600; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { color: var(--text-heading); opacity: 1; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover { color: var(--color-primary); }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { opacity: .35; }
body .wc-block-cart-item__remove-link { color: var(--text-secondary); }
body .wc-block-cart-item__remove-link:hover { color: var(--color-primary); }

/* Sidebars as cards */
body .wc-block-cart .wp-block-woocommerce-cart-totals-block,
body .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
  padding: 24px;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  background: var(--bg-card);
}
body .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title { margin: 0 0 8px; padding: 0; }
body .wc-block-components-totals-wrapper,
body .wc-block-components-order-summary .wc-block-components-order-summary-item { border-color: var(--border-default); }
body .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
body .wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
body .wc-block-cart__sidebar .wc-block-components-panel__button,
body .wc-block-checkout__sidebar .wc-block-components-panel__button,
body .wc-block-checkout__sidebar .wc-block-components-order-summary,
body .wc-block-checkout__sidebar .wc-block-components-totals-item,
body .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title,
body .wc-block-cart__sidebar .wc-block-components-totals-item,
body .wc-block-cart__submit-container { padding-inline: 0; }
body .wc-block-cart .wp-block-woocommerce-cart-totals-block .wc-block-cart__submit-container { padding-bottom: 0; }
body .wc-block-components-radio-control-accordion-option,
body .wc-block-components-radio-control__option { border-color: var(--border-default); }
body .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option { border-radius: var(--radius-md); }
body .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text.wc-block-components-checkout-order-summary__title-text { margin-inline: 0; }
body .wc-block-checkout__sidebar .wc-block-components-totals-coupon,
body .wc-block-cart__sidebar .wc-block-components-totals-coupon { padding-inline: 0; }
body .wc-block-components-radio-control .wc-block-components-radio-control__input { border-color: var(--border-strong); }
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--color-primary); }
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--color-primary); }
body .wc-block-components-radio-control-accordion-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body .wc-block-components-radio-control__option--checked-option-highlighted { border-radius: var(--radius-md); background: var(--bg-card); box-shadow: inset 0 0 0 1.5px var(--color-primary); }
body .wc-block-components-order-summary-item__image img { border-radius: var(--radius-sm); background: var(--bg-subtle); }
body .wc-block-components-order-summary-item__quantity { border: 2px solid var(--bg-card); background: var(--color-primary); color: var(--color-primary-fg); box-shadow: none; }

/* Notices */
body .wc-block-components-notice-banner { border-radius: var(--radius-md); font-size: 14px; }
body .wc-block-components-notice-banner.is-error { border-color: rgba(179, 38, 30, .3); background: #FCF1EF; }
body .wc-block-components-notice-banner.is-info { border-color: var(--border-default); background: var(--bg-subtle); }
body .wc-block-components-notice-banner.is-info > svg { background: var(--color-primary); }

/* Empty cart: a bag in a soft circle instead of the sad face, a hairline instead of the dots */
body .wc-block-cart__empty-cart__title { color: var(--text-heading); font-family: var(--font-heading); font-size: clamp(24px, 3vw, 32px); font-weight: var(--heading-weight); }
body .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  width: 112px;
  height: 112px;
  margin: 12px auto 28px;
  border-radius: 50%;
  background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 20.5L5 8Z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E") center / 48px no-repeat;
  -webkit-mask-image: none;
  mask-image: none;
  box-shadow: 0 0 0 12px var(--color-primary-light);
}
body .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots { width: 64px; height: 1px; margin-block: 32px 40px; border: 0; background: var(--border-strong); }
body .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before { content: none; }
body .wp-block-woocommerce-empty-cart-block > .wp-block-heading { margin-bottom: 28px; color: var(--text-heading); font-size: var(--fs-h2); }

/* Product grid block (empty cart "New in store" and any product block) */
body .wc-block-grid__product { text-align: start; }
body .wc-block-grid__product-image img { border-radius: var(--radius-lg); aspect-ratio: 1; object-fit: cover; background: var(--bg-subtle); }
body .wc-block-grid__product-title { margin-top: 12px; color: var(--text-heading); font-family: var(--font-body); font-size: 15px; font-weight: 600; }
body .wc-block-grid__product-link:hover .wc-block-grid__product-title { color: var(--color-primary); }
body .wc-block-grid__product-price { color: var(--text-heading); font-family: var(--font-heading); font-size: 18px; font-weight: var(--heading-weight); }
body .wc-block-grid__product-rating .star-rating { color: var(--color-accent); }
body .wc-block-grid__product-onsale { border: 0; border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-primary-fg); font-size: 11px; letter-spacing: .06em; }

/* ======================================================================
 * Classic cart ([woocommerce_cart]): items table on the left, totals card on the right,
 * cross-sells under the table. The collaterals wrapper is dissolved so its two boxes join the grid.
 * ==================================================================== */
.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
  grid-template-areas: "notices notices" "items totals" "more totals";
  gap: 0 40px;
  align-items: start;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-area: notices; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 24px; }
.woocommerce-cart .woocommerce-cart-form { grid-area: items; min-width: 0; margin: 0; }
.woocommerce-cart .cart-collaterals { display: contents; }
.woocommerce-cart .cart-collaterals .cart_totals { position: sticky; top: 110px; grid-area: totals; float: none; width: auto; }
.woocommerce-cart .cart-collaterals .cross-sells { grid-area: more; float: none; width: auto; margin-top: 48px; }

/* Items table */
.woocommerce-cart table.shop_table.cart {
  width: 100%;
  margin: 0;
  border: 1px solid var(--border-default);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: var(--radius-lg);
  background: var(--bg-card);
  overflow: hidden;
}
.woocommerce-cart table.shop_table.cart th {
  padding: 14px 16px;
  background: var(--bg-subtle);
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 600;
  text-align: start;
}
.woocommerce-cart table.shop_table.cart th,
.woocommerce-cart table.shop_table.cart td { border-inline: 0; border-bottom: 0; }
.woocommerce-cart table.shop_table.cart td { padding: 18px 16px; border-top: 1px solid var(--border-default); vertical-align: middle; }
.woocommerce-cart table.shop_table.cart tbody tr:first-child td { border-top: 0; }
.woocommerce-cart table.shop_table.cart th.product-remove,
.woocommerce-cart table.shop_table.cart td.product-remove { width: 48px; padding-inline-end: 0; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail { width: 112px; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail img { display: block; width: 88px; height: 88px; border-radius: var(--radius-md); background: var(--bg-subtle); object-fit: cover; }
.woocommerce-cart table.shop_table.cart td.product-name a { color: var(--text-heading); font-family: var(--font-heading); font-size: 18px; font-weight: var(--heading-weight); line-height: 1.3; }
.woocommerce-cart table.shop_table.cart td.product-name a:hover { color: var(--color-primary); }
.woocommerce-cart table.shop_table.cart td.product-name dl.variation { display: flex; flex-wrap: wrap; gap: 2px 6px; margin: 6px 0 0; color: var(--text-secondary); font-size: 13px; }
.woocommerce-cart table.shop_table.cart td.product-name dl.variation dt,
.woocommerce-cart table.shop_table.cart td.product-name dl.variation dd,
.woocommerce-cart table.shop_table.cart td.product-name dl.variation p { margin: 0; }
.woocommerce-cart table.shop_table.cart td.product-price,
.woocommerce-cart table.shop_table.cart td.product-subtotal { color: var(--text-heading); font-weight: 600; white-space: nowrap; }
.woocommerce-cart table.shop_table.cart td.product-subtotal { font-size: 16px; }

/* Remove link: a quiet round "×" instead of WooCommerce's red one */
body.woocommerce-cart table.cart a.remove {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--text-secondary) !important;
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  transition: background-color .2s ease, color .2s ease;
}
body.woocommerce-cart table.cart a.remove:hover { background: var(--color-primary-light); color: var(--color-primary) !important; }

/* Quantity stepper */
.woocommerce-cart-form .quantity {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  border: 1px solid var(--border-strong);
  border-radius: var(--btn-radius);
  background: var(--bg-input);
}
.woocommerce-cart-form .quantity:focus-within { border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--ui-focus-ring); }
.woocommerce-cart-form .quantity .qty { width: 40px; min-height: 42px; padding: 0; border: 0; background: none; color: var(--text-heading); font-size: 15px; font-weight: 600; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.woocommerce-cart-form .quantity .qty:focus { outline: 0; box-shadow: none; }
.woocommerce-cart-form .quantity .qty::-webkit-inner-spin-button,
.woocommerce-cart-form .quantity .qty::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.woocommerce-cart-form .craftmarket-qty__btn { display: grid; place-items: center; width: 38px; height: 42px; padding: 0; border: 0; background: none; color: var(--text-heading); cursor: pointer; }
.woocommerce-cart-form .craftmarket-qty__btn:hover { color: var(--color-primary); }

/* Actions row: coupon on the left, "Update cart" on the right */
.woocommerce-cart table.shop_table.cart td.actions { padding: 16px; background: var(--bg-subtle); }
.woocommerce-cart table.shop_table.cart td.actions::after { content: ""; display: table; clear: both; }
.woocommerce-cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; float: inline-start; }
.woocommerce-cart td.actions .coupon #coupon_code {
  width: 220px;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--btn-radius);
  background: var(--bg-input);
  color: var(--text-heading);
  font-size: 14px;
}
.woocommerce-cart td.actions .coupon #coupon_code:focus { border-color: var(--border-focus); outline: 0; box-shadow: 0 0 0 3px var(--ui-focus-ring); }
.woocommerce-cart td.actions .button { min-height: 44px; padding: 10px 22px; font-size: 14px; }
.woocommerce-cart td.actions .coupon .button { border-color: var(--text-heading); background: var(--text-heading); color: var(--bg-card); }
.woocommerce-cart td.actions .coupon .button:hover { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-primary-fg); }
.woocommerce-cart td.actions > .button[name="update_cart"] { float: inline-end; border-color: var(--border-strong); background: transparent; color: var(--text-heading); }
.woocommerce-cart td.actions > .button[name="update_cart"]:hover:not(:disabled) { border-color: var(--text-heading); }
.woocommerce-cart td.actions > .button[name="update_cart"]:disabled { opacity: .5; cursor: not-allowed; }
body.craftmarket-cart-auto td.actions > .button[name="update_cart"] { display: none; } /* quantities update the cart on their own (theme.js) */

/* Totals card */
.woocommerce-cart .cart_totals {
  padding: 24px;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  background: var(--bg-card);
}
.woocommerce-cart .cart_totals > h2 { margin: 0 0 12px; font-size: 24px; }
.woocommerce-cart .cart_totals table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { padding: 12px 0; border: 0; border-top: 1px solid var(--border-default); background: none; color: var(--text-body); font-size: 15px; font-weight: 400; text-align: start; vertical-align: top; }
.woocommerce-cart .cart_totals table.shop_table td { text-align: end; }
.woocommerce-cart .cart_totals table.shop_table .cart-subtotal th,
.woocommerce-cart .cart_totals table.shop_table .cart-subtotal td { color: var(--text-heading); font-weight: 600; }
.woocommerce-cart .cart_totals table.shop_table tr:first-child th,
.woocommerce-cart .cart_totals table.shop_table tr:first-child td { border-top: 0; }
.woocommerce-cart .cart_totals table.shop_table .order-total th,
.woocommerce-cart .cart_totals table.shop_table .order-total td { padding-top: 16px; color: var(--text-heading); font-family: var(--font-heading); font-size: 24px; font-weight: var(--heading-weight); }
.woocommerce-cart .cart_totals .order-total td strong { font-weight: inherit; }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .shipping-calculator-button { font-size: 13px; }
.woocommerce-cart .cart_totals ul#shipping_method { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.woocommerce-cart .cart_totals ul#shipping_method li { display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; margin: 0; }
.woocommerce-cart .cart_totals ul#shipping_method input { margin: 0; accent-color: var(--color-primary); }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination { margin: 8px 0 2px; color: var(--text-secondary); }
.woocommerce-cart .cart_totals .shipping-calculator-button { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
body.woocommerce-cart .cart_totals .shipping-calculator-button::after { content: none; }
.woocommerce-cart .cart_totals .shipping-calculator-form { margin-top: 12px; text-align: start; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 16px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 54px; margin: 0; font-size: 16px; }

/* Trust points under the totals (craftmarket_cart_trust) */
/* Four short promises in a row, icon over a two-line label (design cart.png). */
.woocommerce-cart .cart_totals .craftmarket-cart-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 22px 0 0; padding: 20px 0 0; border-top: 1px solid var(--border-default); list-style: none; }
.woocommerce-cart .cart_totals .craftmarket-cart-trust li { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; color: var(--text-secondary); font-size: 12px; line-height: 1.35; text-align: center; }
.woocommerce-cart .cart_totals .craftmarket-cart-trust svg { flex: none; color: var(--text-heading); }

/* Cross-sells */
.woocommerce-cart .cross-sells > h2 { margin: 0 0 20px; font-size: var(--fs-h3, 28px); }
.woocommerce-cart .cross-sells ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }

/* Empty cart: message with a bag, the shop button, then suggestions */
.woocommerce-cart .woocommerce:has(> .wc-empty-cart-message) { display: flex; flex-direction: column; align-items: center; text-align: center; }
.woocommerce-cart .wc-empty-cart-message { width: 100%; }
body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  color: var(--text-heading);
  font-family: var(--font-heading);
  font-size: clamp(24px, 3vw, 32px);
  font-weight: var(--heading-weight);
}
body.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::before {
  content: "";
  position: static;
  display: block;
  width: 112px;
  height: 112px;
  margin: 12px auto 32px;
  border-radius: 50%;
  background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 20.5L5 8Z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E") center / 48px no-repeat;
  box-shadow: 0 0 0 12px var(--color-primary-light);
}
.woocommerce-cart .return-to-shop { order: 1; margin: 24px 0 0; }
.woocommerce-cart .craftmarket-cart-suggest { order: 2; width: 100%; margin-top: 64px; text-align: start; }
.craftmarket-cart-suggest__title { margin: 0 0 24px; font-size: var(--fs-h2); text-align: center; }

@media (max-width: 1100px) {
  .woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "notices" "items" "totals" "more"; }
  .woocommerce-cart .cart-collaterals .cart_totals { position: static; margin-top: 32px; }
}

@media (max-width: 767px) {
  /* Each item becomes a small card: photo left, details right. */
  .woocommerce-cart table.shop_table.cart thead { display: none; }
  .woocommerce-cart table.shop_table.cart,
  .woocommerce-cart table.shop_table.cart tbody { display: block; }
  .woocommerce-cart table.shop_table.cart tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 4px 14px;
    padding: 16px;
    border-top: 1px solid var(--border-default);
  }
  .woocommerce-cart table.shop_table.cart tbody tr:first-child { border-top: 0; }
  .woocommerce-cart table.shop_table.cart tr.cart_item td { display: block; width: auto; padding: 0; border: 0; text-align: start; }
  .woocommerce-cart table.shop_table.cart tr.cart_item td::before { display: none; }
  .woocommerce-cart table.shop_table.cart td.product-thumbnail { grid-row: 1 / span 4; width: 80px; }
  .woocommerce-cart table.shop_table.cart td.product-thumbnail img { width: 80px; height: 80px; }
  .woocommerce-cart table.shop_table.cart tr.cart_item td.product-name { padding-inline-end: 32px; }
  .woocommerce-cart table.shop_table.cart td.product-name a { font-size: 15px; line-height: 1.35; }
  .woocommerce-cart table.shop_table.cart td.product-name dl.variation { font-size: 12px; }
  .woocommerce-cart table.shop_table.cart td.product-subtotal { font-size: 14px; }
  .woocommerce-cart-form .quantity { min-height: 38px; }
  .woocommerce-cart-form .quantity .qty { width: 32px; min-height: 36px; font-size: 14px; }
  .woocommerce-cart-form .craftmarket-qty__btn { width: 32px; height: 36px; }
  body.woocommerce-cart .woocommerce td.actions .button,
  .woocommerce-cart td.actions .coupon #coupon_code { min-height: 42px; font-size: 13px; }
  .woocommerce-cart .cart_totals { padding: 20px; }
  .woocommerce-cart .cart_totals > h2 { font-size: 20px; }
  .woocommerce-cart .cart_totals table.shop_table th,
  .woocommerce-cart .cart_totals table.shop_table td { font-size: 14px; }
  .woocommerce-cart .cart_totals table.shop_table .order-total th,
  .woocommerce-cart .cart_totals table.shop_table .order-total td { font-size: 20px; }
  .woocommerce-cart table.shop_table.cart td.product-remove { position: absolute; top: 10px; inset-inline-end: 8px; width: auto; }
  .woocommerce-cart table.shop_table.cart tr.cart_item td.product-price { display: none; }
  .woocommerce-cart table.shop_table.cart td.product-quantity { margin-top: 6px; }
  .woocommerce-cart table.shop_table.cart td.product-subtotal { position: absolute; bottom: 24px; inset-inline-end: 16px; }
  .woocommerce-cart table.shop_table.cart tr:not(.cart_item) { display: block; }
  .woocommerce-cart table.shop_table.cart td.actions { display: block; border-top: 1px solid var(--border-default); }
  .woocommerce-cart td.actions .coupon { flex-wrap: nowrap; float: none; }
  body.woocommerce-cart .woocommerce td.actions .coupon .button { padding-inline: 18px; white-space: nowrap; }
  .woocommerce-cart td.actions .coupon #coupon_code { flex: 1 1 auto; width: auto; min-width: 0; }
  .woocommerce-cart td.actions > .button[name="update_cart"] { float: none; width: 100%; margin-top: 10px; }
  .woocommerce-cart .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}

/* WooCommerce's own .button colours (grey, purple .alt) give way to the theme buttons. */
body.woocommerce-cart .woocommerce a.button,
body.woocommerce-cart .woocommerce button.button,
body.woocommerce-cart .woocommerce a.button.alt,
body.woocommerce-account .woocommerce a.button,
body.woocommerce-account .woocommerce button.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 26px;
  border: 1px solid transparent;
  border-radius: var(--btn-radius);
  background: var(--color-primary);
  color: var(--color-primary-fg);
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}
body.woocommerce-cart .woocommerce a.button:hover,
body.woocommerce-cart .woocommerce button.button:hover:not(:disabled),
body.woocommerce-account .woocommerce :is(a.button, button.button):hover:not(:disabled),
body.woocommerce-cart .woocommerce a.button.alt:hover { background: var(--color-primary-hover); color: var(--color-primary-fg); }
body.woocommerce-cart .woocommerce td.actions .coupon .button { min-height: 44px; border-color: var(--text-heading); background: var(--text-heading); color: var(--bg-card); font-size: 14px; }
body.woocommerce-cart .woocommerce td.actions .coupon .button:hover { border-color: var(--color-primary); background: var(--color-primary); }
body.woocommerce-cart .woocommerce td.actions > .button[name="update_cart"] { min-height: 44px; border-color: var(--border-strong); background: transparent; color: var(--text-heading); font-size: 14px; }
body.woocommerce-cart .woocommerce td.actions > .button[name="update_cart"]:hover:not(:disabled) { border-color: var(--text-heading); background: transparent; color: var(--text-heading); }
body.woocommerce-cart .woocommerce td.actions > .button[name="update_cart"]:disabled { padding: 12px 22px; opacity: .5; }
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 54px; font-size: 16px; }

/* ======================================================================
 * Classic checkout ([woocommerce_checkout]): details on the left, a sticky order card on the right.
 * ==================================================================== */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
  grid-template-areas: "notices notices" "details heading" "details review";
  grid-template-rows: auto auto 1fr;
  gap: 0 48px;
  align-items: start;
}
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-area: notices; margin-bottom: 24px; }
.woocommerce-checkout #customer_details { grid-area: details; min-width: 0; }
.woocommerce-checkout #order_review_heading { grid-area: heading; margin: 0; padding: 28px 28px 0; border: 1px solid var(--border-default); border-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; background: var(--bg-card); font-size: 24px; }
.woocommerce-checkout #order_review { position: sticky; top: 110px; grid-area: review; min-width: 0; padding: 12px 28px 28px; border: 1px solid var(--border-default); border-top: 0; border-radius: 0 0 var(--radius-lg) var(--radius-lg); background: var(--bg-card); }
.woocommerce-checkout #order_review_heading { position: sticky; top: 110px; }

/* Billing / shipping: each block a card, fields in two columns */
.woocommerce-checkout #customer_details.col2-set { display: grid; gap: 24px; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: auto; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--radius-lg); background: var(--bg-card); }
.woocommerce-checkout #customer_details h3 { margin: 0 0 20px; font-size: 22px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 16px; }
.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper, #customer_details)::before,
.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper, #customer_details)::after { content: none; display: none; } /* clearfix pseudo-elements would take grid cells */
:is(.woocommerce-checkout, .woocommerce-account) form .form-row { display: grid; gap: 6px; float: none; width: auto; margin: 0; padding: 0; grid-column: 1 / -1; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row-first { grid-column: 1; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row-last { grid-column: 2; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row label { margin: 0; color: var(--text-heading); font-size: 14px; font-weight: 500; line-height: 1.4; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row .required { color: var(--color-primary); text-decoration: none; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row .woocommerce-input-wrapper { display: grid; gap: 10px; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row :is(input.input-text, textarea, select) {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--input-radius);
  background: var(--bg-input);
  color: var(--text-heading);
  font-family: var(--font-body);
  font-size: 15px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
:is(.woocommerce-checkout, .woocommerce-account) form .form-row textarea { min-height: 110px; resize: vertical; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row :is(input.input-text, textarea, select):focus { border-color: var(--border-focus); outline: 0; box-shadow: 0 0 0 3px var(--ui-focus-ring); }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row.woocommerce-invalid :is(input.input-text, select) { border-color: #B3261E; }
:is(.woocommerce-checkout, .woocommerce-account) form .form-row select { appearance: none; padding-inline-end: 38px; background: var(--bg-input) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23786b60' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center; }
/* Country / state use SelectWoo: same look as the inputs. */
:is(.woocommerce-checkout, .woocommerce-account) .select2-container .select2-selection--single { height: 46px; border: 1px solid var(--border-strong); border-radius: var(--input-radius); background: var(--bg-input); }
:is(.woocommerce-checkout, .woocommerce-account) .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 38px 0 14px; color: var(--text-heading); font-size: 15px; line-height: 44px; }
:is(.woocommerce-checkout, .woocommerce-account) .select2-container .select2-selection--single .select2-selection__arrow { top: 0; height: 44px; inset-inline-end: 10px; }
:is(.woocommerce-checkout, .woocommerce-account) .select2-container--focus .select2-selection--single,
:is(.woocommerce-checkout, .woocommerce-account) .select2-container--open .select2-selection--single { border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--ui-focus-ring); }
.select2-dropdown { border-color: var(--border-strong); border-radius: var(--input-radius); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--color-primary); }

/* "Ship to a different address?" as a checkbox row, not a heading */
.woocommerce-checkout #customer_details h3#ship-to-different-address { margin: 0 0 16px; font-family: var(--font-body); font-size: 15px; font-weight: 600; }
.woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.woocommerce-checkout .shipping_address { margin-top: 20px; }
.woocommerce-checkout .woocommerce-additional-fields { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--border-default); }
.woocommerce-checkout .woocommerce-additional-fields > h3 { display: none; } /* "Additional information" over a single notes field */
.woocommerce-checkout input[type="checkbox"],
.woocommerce-checkout input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--color-primary); }

/* Order table */
.woocommerce-checkout table.woocommerce-checkout-review-order-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 15px; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table :is(th, td) { padding: 12px 0; border: 0; border-top: 1px solid var(--border-default); background: none; color: var(--text-body); font-weight: 400; text-align: start; vertical-align: top; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td { text-align: end; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr:first-child td { border-top: 0; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-name { color: var(--text-heading); font-weight: 500; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity { color: var(--text-secondary); font-weight: 400; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-total { color: var(--text-heading); font-weight: 600; white-space: nowrap; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table ul#shipping_method li { display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; margin: 0 0 4px; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total :is(th, td) { padding-top: 16px; color: var(--text-heading); font-family: var(--font-heading); font-size: 24px; font-weight: var(--heading-weight); }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total strong { font-weight: inherit; }

/* Payment */
body.woocommerce-checkout #payment { margin-top: 20px; border-radius: 0; background: none; }
body.woocommerce-checkout #payment ul.payment_methods { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; list-style: none; }
body.woocommerce-checkout #payment ul.payment_methods li { margin: 0; padding: 14px 16px; border: 1px solid var(--border-default); border-radius: var(--radius-md); background: var(--bg-card); line-height: 1.4; transition: border-color .2s ease; }
body.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--color-primary); box-shadow: inset 0 0 0 1px var(--color-primary); }
body.woocommerce-checkout #payment ul.payment_methods li > label { display: inline-flex; align-items: center; margin-inline-start: 4px; color: var(--text-heading); font-weight: 600; cursor: pointer; }
body.woocommerce-checkout #payment ul.payment_methods li input { vertical-align: middle; }
body.woocommerce-checkout #payment div.payment_box { margin: 10px 0 0; padding: 0; background: none; color: var(--text-secondary); font-size: 13px; }
body.woocommerce-checkout #payment div.payment_box::before { content: none; }
body.woocommerce-checkout #payment div.payment_box p { margin: 0; }
body.woocommerce-checkout #payment div.form-row { margin-top: 18px; padding: 0; }
body.woocommerce-checkout .woocommerce-privacy-policy-text p { margin: 0 0 16px; color: var(--text-secondary); font-size: 13px; line-height: 1.55; }
body.woocommerce-checkout #payment #place_order {
  float: none;
  display: flex;
  width: 100%;
  min-height: 54px;
  padding: 14px 26px;
  border: 0;
  border-radius: var(--btn-radius);
  background: var(--color-primary);
  color: var(--color-primary-fg);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
}
body.woocommerce-checkout #payment #place_order:hover { background: var(--color-primary-hover); }

/* Coupon / login toggles and their forms */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 16px; }
/* Coupon: one compact row (field + button), under the toggle notice. jQuery shows the form with an
   inline display:block, so the row layout is set on the inner paragraphs instead. */
.woocommerce-checkout form.checkout_coupon { position: relative; max-width: 520px; margin: -8px 0 24px; padding: 16px; border: 1px solid var(--border-default); border-radius: var(--radius-lg); background: var(--bg-card); }
.woocommerce-checkout form.checkout_coupon .form-row { display: block; margin: 0; padding: 0; }
.woocommerce-checkout form.checkout_coupon .form-row-first { width: 100%; }
.woocommerce-checkout form.checkout_coupon .form-row-last { position: absolute; top: 22px; inset-inline-end: 22px; width: auto; }
.woocommerce-checkout form.checkout_coupon input.input-text { width: 100%; min-height: 52px; padding: 10px 150px 10px 20px; border: 1px solid var(--border-strong); border-radius: var(--btn-radius); background: var(--bg-input); color: var(--text-heading); font-size: 15px; letter-spacing: .04em; text-transform: uppercase; }
.woocommerce-checkout form.checkout_coupon input.input-text::placeholder { color: var(--text-muted); letter-spacing: 0; text-transform: none; }
.woocommerce-checkout form.checkout_coupon input.input-text:focus { border-color: var(--border-focus); outline: 0; box-shadow: 0 0 0 3px var(--ui-focus-ring); }
body.woocommerce-checkout form.checkout_coupon .button { min-height: 40px; padding: 8px 20px; border: 0; border-radius: var(--btn-radius); background: var(--text-heading); color: var(--bg-card); font-size: 14px; font-weight: 600; }
body.woocommerce-checkout form.checkout_coupon .button:hover { background: var(--color-primary); color: var(--color-primary-fg); }
.woocommerce-checkout form.checkout_coupon .clear { display: none; }
[dir="rtl"] .woocommerce-checkout form.checkout_coupon input.input-text { padding: 10px 20px 10px 150px; }

@media (max-width: 1023px) {
  .woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "notices" "details" "heading" "review"; }
  .woocommerce-checkout #order_review_heading { position: static; margin-top: 32px; }
  .woocommerce-checkout #order_review { position: static; }
}

@media (max-width: 600px) {
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2 { padding: 20px; }
  .woocommerce-checkout #order_review_heading { padding: 20px 20px 0; font-size: 20px; }
  .woocommerce-checkout #order_review { padding: 8px 20px 20px; }
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-checkout form .form-row-first,
  .woocommerce-checkout form .form-row-last { grid-column: 1; }
  .woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total :is(th, td) { font-size: 20px; }
}

/* ======================================================================
 * My Account (classic WooCommerce templates, no overrides): side menu + content cards.
 * ==================================================================== */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 260px minmax(0, 1fr); align-items: start; gap: 28px; }
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after { content: none; display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }

/* Menu */
.woocommerce-MyAccount-navigation { position: sticky; top: calc(var(--header-height) + 16px); padding: 10px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); position: relative; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 14px; border-radius: var(--radius-md); color: var(--text-body); font-size: 15px; font-weight: 500; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.woocommerce-MyAccount-navigation li a::before { content: ""; flex: none; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--cm-icon) center / contain no-repeat; mask: var(--cm-icon) center / contain no-repeat; }
.woocommerce-MyAccount-navigation li a:hover { background: var(--bg-subtle); color: var(--text-heading); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--color-primary-light); color: var(--color-primary); font-weight: 600; }
.woocommerce-MyAccount-navigation li.is-active a::after { content: ""; position: absolute; top: 8px; bottom: 8px; inset-inline-start: 0; width: 3px; border-radius: 3px; background: var(--color-primary); }
.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 6px !important; padding-top: 6px; border-top: 1px solid var(--border-default); }
.woocommerce-MyAccount-navigation-link--dashboard a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 9-7.5 9 7.5'/%3E%3Cpath d='M5 9.5V20h14V9.5M10 20v-6h4v6'/%3E%3C/svg%3E") !important; }
.woocommerce-MyAccount-navigation-link--orders a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l-1 13H7L6 7Z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E") !important; }
.woocommerce-MyAccount-navigation-link--downloads a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11m-4.5-4.5L12 15l4.5-4.5M4 15v3a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-3'/%3E%3C/svg%3E") !important; }
.woocommerce-MyAccount-navigation-link--edit-address a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") !important; }
.woocommerce-MyAccount-navigation-link--payment-methods a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='M3 10h18M7 15h3'/%3E%3C/svg%3E") !important; }
.woocommerce-MyAccount-navigation-link--edit-account a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E") !important; }
.woocommerce-MyAccount-navigation-link--customer-logout a { --cm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h3a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-3M10 17l-5-5 5-5M5 12h11'/%3E%3C/svg%3E") !important; }

/* Content */
.woocommerce-MyAccount-content { display: grid; gap: 24px; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.woocommerce-MyAccount-content::before,
.woocommerce-MyAccount-content::after { content: none; display: none; }
.woocommerce-MyAccount-content > * { margin: 0; }
.woocommerce-MyAccount-content > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-MyAccount-content .woocommerce-notices-wrapper > *,
.woocommerce-MyAccount-content > :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { margin: 0; }
.woocommerce-account .entry-content .woocommerce-MyAccount-content :is(h2, h3) { margin: 0 0 14px; font-size: 22px; }
.woocommerce-MyAccount-content p { color: var(--text-body); }
.woocommerce-MyAccount-content mark { padding: 0; background: none; color: var(--text-heading); font-weight: 600; }
/* Dashboard greeting */
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type:has(strong) { color: var(--text-heading); font-family: var(--font-heading); font-size: 24px; font-weight: var(--heading-weight); line-height: 1.3; }
.woocommerce-MyAccount-content > p:first-of-type:has(strong) a { font-family: var(--font-body); font-size: 15px; }
.woocommerce-MyAccount-content > p:first-of-type:has(strong) + p { margin-top: -12px; color: var(--text-secondary); }

/* Tables: orders, downloads, order details */
.woocommerce-account table.shop_table { width: 100%; margin: 0; overflow: hidden; border: 1px solid var(--border-default); border-collapse: separate; border-spacing: 0; border-radius: var(--input-radius); font-size: 14px; }
.woocommerce-account table.shop_table :is(th, td) { padding: 14px 16px; border: 0; border-top: 1px solid var(--border-default); background: none; color: var(--text-body); text-align: start; vertical-align: middle; }
.woocommerce-account table.shop_table thead th { border-top: 0; background: var(--bg-subtle); color: var(--text-secondary); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.woocommerce-account table.shop_table tbody tr:first-child :is(th, td) { border-top: 0; }
.woocommerce-account table.shop_table thead + tbody tr:first-child :is(th, td) { border-top: 1px solid var(--border-default); }
.woocommerce-account table.shop_table a { color: var(--text-heading); font-weight: 600; }
.woocommerce-account table.shop_table a:hover { color: var(--color-primary); }
.woocommerce-account table.shop_table tfoot :is(th, td) { color: var(--text-heading); }
.woocommerce-account table.shop_table tfoot th { font-weight: 500; }
.woocommerce-account table.shop_table tfoot tr:last-child :is(th, td) { font-weight: 700; }
.woocommerce-account table.shop_table :is(th, td).product-total,
.woocommerce-account table.shop_table tfoot td { text-align: end; }
.woocommerce-orders-table__cell-order-actions { white-space: nowrap; text-align: end !important; }
body.woocommerce-account .woocommerce table.shop_table .button { min-height: 36px; margin: 2px 0 2px 6px; padding: 6px 16px; border-color: var(--border-strong); background: transparent; color: var(--text-heading); font-size: 13px; }
body.woocommerce-account .woocommerce table.shop_table .button:hover { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-primary-fg); }

/* Order status: a coloured dot from WooCommerce's row class */
.woocommerce-orders-table__cell-order-status { --cm-dot: var(--text-muted); color: var(--text-heading); font-weight: 600; white-space: nowrap; }
.woocommerce-orders-table__cell-order-status::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-inline-end: 8px; border-radius: 50%; background: var(--cm-dot); vertical-align: 1px; }
.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status { --cm-dot: var(--color-warning); }
.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { --cm-dot: var(--color-success); }
.woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-pending .woocommerce-orders-table__cell-order-status { --cm-dot: var(--color-info); }
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status { --cm-dot: var(--color-error); }

.woocommerce-pagination { display: flex; justify-content: space-between; gap: 12px; }

/* Addresses */
.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .woocommerce-customer-details .woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; }
.woocommerce-account :is(.woocommerce-Addresses, .woocommerce-columns--addresses)::before,
.woocommerce-account :is(.woocommerce-Addresses, .woocommerce-columns--addresses)::after { content: none; display: none; }
.woocommerce-account :is(.woocommerce-Addresses, .woocommerce-columns--addresses) > .col-1,
.woocommerce-account :is(.woocommerce-Addresses, .woocommerce-columns--addresses) > .col-2 { float: none; width: auto; max-width: none; margin: 0; padding: 20px; border: 1px solid var(--border-default); border-radius: var(--input-radius); }
.woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin-bottom: 10px; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title::before,
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title::after { content: none; display: none; }
.woocommerce-account .entry-content .woocommerce-Address-title h2,
.woocommerce-account .entry-content .woocommerce-column__title { margin: 0 0 10px; font-size: 18px; }
.woocommerce-account .entry-content .woocommerce-Address-title h2 { margin: 0; }
.woocommerce-Address-title .edit { float: none; color: var(--color-primary); font-size: 14px; font-weight: 600; }
.woocommerce-account address { margin: 0; padding: 0; border: 0; color: var(--text-body); font-style: normal; line-height: 1.7; }
.woocommerce-customer-details address { border: 0 !important; padding: 0 !important; }
.woocommerce-customer-details--email,
.woocommerce-customer-details--phone { margin: 6px 0 0 !important; padding: 0 !important; }
.woocommerce-customer-details--email::before,
.woocommerce-customer-details--phone::before { position: static !important; margin: 0 8px 0 0 !important; color: var(--text-muted); }

/* View order */
.woocommerce-MyAccount-content > p:has(> mark.order-number) { padding: 14px 18px; border-radius: var(--radius-md); background: var(--bg-subtle); }
.woocommerce-account .woocommerce-order-details,
.woocommerce-account .woocommerce-customer-details { margin: 0; }
.woocommerce-account .woocommerce-order-details .order-again { margin: 16px 0 0; }
.woocommerce-account .woocommerce-table--order-details td.product-name .product-quantity { color: var(--text-muted); font-weight: 500; }
.woocommerce-account .woocommerce-table--order-details .wc-item-meta { margin: 4px 0 0; padding: 0; color: var(--text-secondary); font-size: 13px; list-style: none; }
.woocommerce-account .woocommerce-table--order-details .wc-item-meta p { display: inline; margin: 0; }

/* Forms: edit address, account details */
.woocommerce-account .woocommerce-address-fields__field-wrapper,
.woocommerce-account form.woocommerce-EditAccountForm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.woocommerce-account .woocommerce-address-fields__field-wrapper::before,
.woocommerce-account .woocommerce-address-fields__field-wrapper::after,
.woocommerce-account form.woocommerce-EditAccountForm::before,
.woocommerce-account form.woocommerce-EditAccountForm::after { content: none; display: none; }
.woocommerce-account form.woocommerce-EditAccountForm > :not(.form-row-first, .form-row-last) { grid-column: 1 / -1; margin: 0; }
.woocommerce-account form.woocommerce-EditAccountForm > .clear { display: none; }
.woocommerce-account .woocommerce-address-fields > p:last-child,
.woocommerce-account form.woocommerce-EditAccountForm > p:last-of-type { margin: 20px 0 0; }
.woocommerce-account form .form-row em,
.woocommerce-account form .form-row #account_display_name_description { color: var(--text-muted); font-size: 13px; font-style: normal; }
.woocommerce-account form.woocommerce-EditAccountForm fieldset { display: grid; gap: 16px; margin: 8px 0 0; padding: 20px; border: 1px solid var(--border-default); border-radius: var(--input-radius); }
.woocommerce-account form.woocommerce-EditAccountForm legend { padding: 0 8px; color: var(--text-heading); font-family: var(--font-heading); font-size: 18px; font-weight: var(--heading-weight); }
.woocommerce-account form .password-input { position: relative; display: block; }
.woocommerce-account form .password-input input { padding-inline-end: 48px; }
.woocommerce-account form .show-password-input { position: absolute; top: 50%; inset-inline-end: 8px; width: 34px; height: 34px; margin: 0; padding: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--text-muted); cursor: pointer; transform: translateY(-50%); }
.woocommerce-account form .show-password-input::after { content: ""; position: absolute; inset: 7px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; }
.woocommerce-account form .show-password-input.display-password { color: var(--color-primary); }
.woocommerce-account form .show-password-input:hover { color: var(--text-heading); }

/* Logged out: login / register, lost password */
.woocommerce-account #customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 980px; margin: 0 auto; }
.woocommerce-account #customer_login::before,
.woocommerce-account #customer_login::after { content: none; display: none; }
.woocommerce-account #customer_login > .u-column1,
.woocommerce-account #customer_login > .u-column2 { float: none; width: auto; max-width: none; margin: 0; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.woocommerce-account .entry-content #customer_login h2,
.woocommerce-account .entry-content .woocommerce > h2 { margin: 0 0 18px; font-size: 26px; }
.woocommerce-account .woocommerce > h2 { max-width: 520px; margin-inline: auto !important; }
.woocommerce-account form:is(.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword) { display: grid; gap: 16px; margin: 0; padding: 0; border: 0; }
.woocommerce-account .woocommerce > form:is(.woocommerce-form-login, .woocommerce-ResetPassword) { max-width: 520px; margin: 0 auto; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--card-radius); background: var(--bg-card); }
.woocommerce-account form:is(.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword) > p { margin: 0; }
.woocommerce-account form:is(.woocommerce-form-login, .woocommerce-form-register) .form-row:has(.button) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.woocommerce-account form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; color: var(--text-body); font-weight: 400; cursor: pointer; }
.woocommerce-account form .woocommerce-form-login__rememberme input { width: 16px; height: 16px; accent-color: var(--color-primary); }
.woocommerce-account form .woocommerce-form-login__submit { order: 2; margin: 0 !important; }
.woocommerce-account .woocommerce-LostPassword a { color: var(--color-primary); font-size: 14px; font-weight: 600; }
.woocommerce-account .woocommerce-privacy-policy-text p { margin: 0; color: var(--text-secondary); font-size: 13px; }

@media (max-width: 1099px) {
  .woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .woocommerce-MyAccount-navigation { position: static; padding: 6px; overflow-x: auto; scrollbar-width: none; }
  .woocommerce-MyAccount-navigation ul { display: flex; gap: 4px; width: max-content; }
  .woocommerce-MyAccount-navigation li a { min-height: 40px; padding: 8px 14px; font-size: 14px; white-space: nowrap; }
  .woocommerce-MyAccount-navigation li.is-active a::after { top: auto; right: 12px; bottom: 0; left: 12px; width: auto; height: 3px; }
  .woocommerce-MyAccount-navigation-link--customer-logout { margin: 0 0 0 4px !important; padding: 0 0 0 4px; border-top: 0; border-inline-start: 1px solid var(--border-default); }
}
@media (max-width: 767px) {
  .woocommerce-MyAccount-content { padding: 20px; }
  .woocommerce-account .woocommerce-MyAccount-content > p:first-of-type:has(strong) { font-size: 20px; }
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .woocommerce-customer-details .woocommerce-columns--addresses,
  .woocommerce-account .woocommerce-address-fields__field-wrapper,
  .woocommerce-account form.woocommerce-EditAccountForm,
  .woocommerce-account #customer_login { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-account form .form-row-first,
  .woocommerce-account form .form-row-last { grid-column: 1 !important; }
  .woocommerce-account #customer_login > :is(.u-column1, .u-column2),
  .woocommerce-account .woocommerce > form:is(.woocommerce-form-login, .woocommerce-ResetPassword) { padding: 20px; }
  .woocommerce-account .woocommerce > form:is(.woocommerce-form-login, .woocommerce-ResetPassword) { margin-inline: 0; }
  /* Order rows become cards (WooCommerce prints data-title on every cell). */
  .woocommerce-account table.shop_table_responsive thead { display: none; }
  .woocommerce-account table.shop_table_responsive tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 12px 16px; border-top: 1px solid var(--border-default); }
  .woocommerce-account table.shop_table_responsive tbody tr:first-child { border-top: 0; }
  .woocommerce-account table.shop_table_responsive tbody :is(th, td) { display: block; padding: 6px 0; border: 0 !important; text-align: end; }
  .woocommerce-account table.shop_table_responsive tbody :is(th, td)::before { content: attr(data-title); float: left; margin-inline-end: 12px; color: var(--text-muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 22px; text-align: start; text-transform: uppercase; }
  .woocommerce-account table.shop_table_responsive tbody :is(th, td) { grid-column: 1 / -1; }
  .woocommerce-account table.shop_table_responsive tbody td.woocommerce-orders-table__cell-order-actions { padding-top: 10px; }
  .woocommerce-account table.shop_table_responsive tbody td.woocommerce-orders-table__cell-order-actions::before { content: none; }
  .woocommerce-account table.shop_table_responsive tbody td.woocommerce-orders-table__cell-order-status::before { display: block; width: auto; height: auto; margin: 0 12px 0 0; border-radius: 0; background: none; vertical-align: baseline; }
  .woocommerce-account table.shop_table_responsive tbody td.woocommerce-orders-table__cell-order-status::after { content: ""; display: inline-block; width: 8px; height: 8px; margin-inline-start: 8px; border-radius: 50%; background: var(--cm-dot); vertical-align: 1px; }
}

/* ---------- Star ratings ----------
   A slender SVG star (mask) in place of WooCommerce's chunky icon font: ratings everywhere and the
   "Your rating" picker. One tile = a 1em star + .15em gap; the filled row is clipped by the
   span width WooCommerce sets (Rated x out of 5), the empty row is the same star at low opacity. */
:root {
  --cm-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 23 20'%3E%3Cpath d='M10 1.2l2.17 6.41 6.77.09-5.42 4.04 2.01 6.46L10 14.3l-5.53 3.9 2.01-6.46L1.06 7.7l6.77-.09z' stroke='%23000' stroke-width='.9' stroke-linejoin='round'/%3E%3C/svg%3E");
}
:root body .star-rating {
  position: relative;
  display: inline-block;
  width: 5.75em;
  height: 1em;
  overflow: hidden;
  font-family: inherit;
  line-height: 1;
  vertical-align: middle;
}
:root body .star-rating::before,
:root body .star-rating span::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 5.75em;
  height: 1em;
  background: currentColor;
  -webkit-mask: var(--cm-star) left top / 1.15em 1em repeat-x;
  mask: var(--cm-star) left top / 1.15em 1em repeat-x;
}
:root body .star-rating::before { opacity: .28; }
:root body .star-rating span { position: absolute; top: 0; left: 0; height: 1em; padding-top: 1.5em; overflow: hidden; float: none; }
:root body p.stars a { width: 1em; height: 1em; margin-inline-end: .2em; font-size: 22px; color: var(--color-star); }
:root body p.stars a::before {
  content: "";
  width: 1em;
  height: 1em;
  background: currentColor;
  opacity: .28;
  -webkit-mask: var(--cm-star) left top / 1.15em 1em no-repeat;
  mask: var(--cm-star) left top / 1.15em 1em no-repeat;
  transition: opacity .15s ease;
}
:root body p.stars:hover a::before,
:root body p.stars.selected a.active::before,
:root body p.stars.selected a:not(.active)::before { content: ""; opacity: 1; }
:root body p.stars:hover a:hover ~ a::before,
:root body p.stars.selected a.active ~ a::before { content: ""; opacity: .28; }
