/* ==========================================================================
   Shelbys skin for AuctionForge (auctions module; docs/AUCTIONFORGE.md)
   Loaded after AF's libs.css and the theme's base.css. Tokens only (base.css :root).
   Scopes: .af-main (every AF screen, wraps banner + AF output), .bp-modal (footer dialogs),
   .select2-container (dropdowns appended to <body>).
   AF prints some inline <style> blocks after this file, so a few rules carry one extra class.

   01 Screen frame + AF globals      07 Lot page: layout, gallery, heading
   02 Banner                         08 Lot page: bid panel, results, description, tools
   03 Upcoming: sale-week strip      09 Account
   04 Sale cards (upcoming + past)   10 Buttons and fields AF renders with JS
   05 Catalogue: info, toolbar       11 Modals (login, register, bids)
   06 Catalogue: lot grid + cards    12 Select2 dropdowns, loaders, reduced motion
   ========================================================================== */

/* 01 SCREEN FRAME + AF GLOBALS -------------------------------------------- */
.af-main { display: block; background: var(--white); color: var(--ink); }
.af-main :is(.bp-container, .bp-container-fluid) { font-family: var(--font-sans); color: var(--ink); }
.af-main .bp-container {
  inline-size: min(100% - 2 * var(--gutter), var(--wrap));
  max-inline-size: none; margin-inline: auto; padding: 0;
}
.af-main .bp-container .bp-row, .af-main .bp-container-fluid .bp-row { margin-inline: 0; }
.af-main .bp-container .bp-row .bp-col { padding-inline: 0; }
.af-main .bp-add-padding { padding-inline: 0; }
.af-main #bp-notice-block:empty { display: none; }
.af-main :is(.bp-container, .af-after) a:not([class]), .af-main .bp-info__link { color: var(--blue); }
.af-main :is(.bp-container, .af-after) a:not([class]):hover { color: var(--blue); }
.af-main .tel { white-space: nowrap; font-variant-numeric: lining-nums tabular-nums; }
.af-main .hidden { display: none !important; }

/* AF's minimal layout pulls header bands out to 100vw (gotcha 1). The theme replaces those bands; if one survives
   (an AF update), keep it inside the page. */
.af-main :is(.bp-header__content-minimal, .bp-header__content-profile-page) {
  inline-size: 100%; max-inline-size: 100%; margin-inline: 0; left: auto; right: auto; transform: none;
}

/* Content blocks AF prints empty */
.af-main .bp-content__text:not(:has(*)), .af-main .wrp-navigation:not(:has(*)), .af-main .bp-content_archive:not(:has(.bp-content__text *)),
.af-main .bp-content.bp-add-padding:not(:has(*)), .af-main #auctionApprovalInfo:empty { display: none; }
.af-main .bp-content.bp-mb-10:has(> #auctionApprovalInfo:empty) { display: none; }

/* 02 BANNER (the theme's .page-banner; these are the AF additions) ---------- */
.af-banner .breadcrumb [aria-current="page"] { text-wrap: balance; }
.af-banner__date {
  margin-block-start: var(--space-s); color: var(--on-blue-2); font-size: var(--step-1); line-height: 1.45;
  font-variant-numeric: lining-nums;
}
.af-banner__date:empty { display: none; }
.af-banner__title { max-inline-size: 22ch; font-size: var(--step-4); }
.af-banner__sale { margin-block-start: .75rem; max-inline-size: 34ch; font: var(--w-bold) var(--step-3)/1.15 var(--font-sans); letter-spacing: var(--track-tight); text-wrap: balance; }
.af-banner__sale a {
  color: var(--on-blue); text-decoration: underline; text-decoration-color: currentColor;
  text-decoration-thickness: 1px; text-underline-offset: .18em;
}
.af-banner__sale a:hover { text-decoration-thickness: 2px; }
.af-banner__front:not(:has(*)) { display: none; }
.af-banner__front { margin-block-start: var(--space-m); }
.af-banner__front #userFront { display: flex; flex-wrap: wrap; gap: .75rem; }
.af-banner--lot { min-block-size: 0; }
.af-banner--account .page-banner__stand a { color: var(--on-blue); text-decoration-color: currentColor; text-underline-offset: .2em; }
@media (max-width: 767.98px) {
  /* The lot title is the H1 just below: the trail stops at the sale on phones. */
  .af-banner--catalogue .breadcrumb li:last-child, .af-banner--lot .breadcrumb li:nth-last-child(-n+2) { display: none; }
  .af-banner--lot .af-banner__sale { font-size: clamp(1.375rem, 1.1rem + 1.2vw, 1.875rem); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
}

/* 03 UPCOMING: SALE-WEEK STRIP + INTRO -------------------------------------- */
.af-week { container: afweek / inline-size; background: var(--ground-2); border-block-end: 1px solid var(--rule); padding-block: var(--section-s); }
.af-week__head { margin-block-end: .75rem; }
.af-week__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); border: 1px solid var(--rule); border-radius: var(--r-m); background: var(--white); overflow: hidden; }
.af-week__list li { display: grid; align-content: start; gap: .125rem; padding: .75rem .875rem .875rem; box-shadow: 1px 0 0 var(--rule), 0 1px 0 var(--rule); }
.af-week__when { font: var(--w-bold) 1.375rem/1.15 var(--font-sans); color: var(--blue); white-space: nowrap; font-variant-numeric: lining-nums; }
.af-week__what { margin-block-start: .25rem; font-weight: var(--w-bold); color: var(--blue); line-height: 1.35; }
.af-week__note { color: var(--ink-2); font-size: var(--step--1); line-height: 1.45; }
.af-week__note a { color: var(--blue); font-weight: var(--w-bold); text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .2em; }
.af-week .is-sale .af-week__when { color: var(--blue); }
@container afweek (min-width: 46rem) {
  .af-week__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .af-week__list li { padding: 1rem 1.25rem 1.125rem; }
  .af-week__what { margin-block-start: .375rem; }
}

/* Intro (page content before the More block) and content after the cards */
.af-main .bp-content_archive { margin: 0; padding-block: var(--section) 0; }
.af-main .bp-content_archive .bp-content__text { text-align: start; max-inline-size: 68ch; font-size: var(--step-lead); line-height: 1.55; color: var(--ink-2); }
.af-main .bp-content_archive .bp-content__text > * + * { margin-block-start: .75em; }
.af-main .bp-content_archive .bp-content__text a { color: var(--blue); font-weight: var(--w-bold); text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .22em; }
.af-after { margin-block-start: var(--section); }
.af-after__prose { padding-block: 0 var(--section); }
.af-after > .split { margin-block-start: 0; }
.af-after > .split + .af-after__prose { padding-block-start: var(--space-xl); }
.af-alerts .caption-card__title { font: var(--w-bold) var(--step-1)/1.25 var(--font-sans); color: var(--on-blue); }
.af-alerts .caption-card__title + p { margin-block-start: .375rem; }

/* 04 SALE CARDS --------------------------------------------------------------- */
.af-main #auction-list-section { margin: 0; padding-block: var(--section); }
.af-main #auction-list-section .bp-auctions {
  container: aflist / inline-size;
  display: grid; gap: var(--rail-gap) clamp(1rem, .6rem + 1.4vw, 2rem); align-items: start;
  margin: 0; padding: 0; inline-size: 100%;
}
.af-main .bp-upcoming-list .bp-auctions { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.af-main .bp-archive-list .bp-auctions { grid-template-columns: minmax(0, 1fr); row-gap: 0; column-gap: clamp(1.5rem, 1rem + 2vw, 3rem); }
@media (min-width: 700px) { .af-main .bp-archive-list .bp-auctions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1800px) { .af-main .bp-archive-list .bp-auctions { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Year index above the past list */
.af-years { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 var(--space-l); padding: 0; }
.af-years + .af-year { margin-block-start: 0; }
.af-years__label { color: var(--ink-2); font-size: var(--step--1); font-weight: var(--w-bold); }
.af-years a {
  display: inline-grid; place-items: center; min-block-size: 2.75rem; min-inline-size: 2.75rem; padding: 0 .75rem;
  border: 1px solid var(--rule-strong); border-radius: var(--r-xs); background: var(--white); color: var(--blue);
  font: var(--w-bold) 1.25rem/1 var(--font-sans); text-decoration: none; font-variant-numeric: lining-nums;
}
.af-years a:hover { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }
.af-year { scroll-margin-block-start: 6rem; }

.af-sale { position: relative; min-inline-size: 0; }
.af-sale__media { position: relative; overflow: hidden; background: var(--ground-3); border-radius: var(--r-s); }
.af-sale__media img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform var(--dur-3) var(--ease); }
.af-sale__tag { position: absolute; inset-block-start: .75rem; inset-inline-start: .75rem; }
.af-sale__when { color: var(--blue); font-size: var(--step--1); font-weight: var(--w-bold); letter-spacing: .02em; font-variant-numeric: lining-nums; }
.af-sale__title { color: var(--ink); letter-spacing: var(--track-tight); }
.af-main .af-sale__title a { color: inherit; text-decoration: none; }
.af-main .af-sale__title a:hover { color: var(--blue); text-decoration: underline; text-decoration-color: currentColor; text-decoration-thickness: 2px; text-underline-offset: .18em; }
.af-sale__text { margin-block-start: .625rem; color: var(--ink-2); max-inline-size: 62ch; }
.af-sale__status { margin-block-start: .75rem; color: var(--ink-2); font-weight: var(--w-bold); }
.af-sale__actions { margin-block-start: var(--space-m); display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 639.98px) { .af-sale__actions .btn { inline-size: 100%; } }
html:not(.js) .af-guest-only, body.bp-login .af-guest-only, .bp-login-early .af-guest-only { display: none; }

/* Upcoming: a card; one sale alone turns landscape when there is room */
.af-sale--upcoming {
  display: grid; align-content: start; background: var(--white); border: 1px solid var(--rule);
  border-radius: var(--r-m); overflow: hidden; transition: border-color var(--dur-1) var(--ease);
}
.af-sale--upcoming .af-sale__media { aspect-ratio: 4 / 3; border-radius: 0; }
.af-sale--upcoming .af-sale__body { padding: clamp(1.25rem, 1rem + 1vw, 2rem); }
.af-sale--upcoming .af-sale__title { margin-block-start: .375rem; font: var(--w-bold) var(--step-2)/1.2 var(--font-sans); text-wrap: balance; }
.af-sale--upcoming:hover { border-color: var(--blue); }
@container aflist (min-width: 46rem) {
  .af-sale--upcoming:only-of-type { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .af-sale--upcoming:only-of-type .af-sale__media { aspect-ratio: auto; min-block-size: 100%; }
  .af-sale--upcoming:only-of-type .af-sale__media img { position: absolute; inset: 0; }
  .af-sale--upcoming:only-of-type .af-sale__body { align-self: center; padding: clamp(1.5rem, 1rem + 2vw, 3rem); }
  .af-sale--upcoming:only-of-type .af-sale__title { font-size: var(--step-3); }
}

/* Past: ledger rows under year headings; the whole row is the link */
.af-year {
  grid-column: 1 / -1; margin-block: var(--space-xl) .25rem; padding-block-end: .5rem; border-block-end: 2px solid var(--ink);
  font: var(--w-bold) var(--step-3)/1 var(--font-sans); color: var(--ink); letter-spacing: var(--track-tight); font-variant-numeric: lining-nums;
}
.af-year:first-child { margin-block-start: 0; }
.af-sale--past {
  display: grid; grid-template-columns: clamp(4.5rem, 3.5rem + 3vw, 6rem) minmax(0, 1fr); gap: clamp(.875rem, .6rem + 1vw, 1.25rem);
  align-items: start; align-self: stretch; padding-block: .875rem; border-block-end: 1px solid var(--rule);
}
.af-sale--past .af-sale__media { aspect-ratio: 1; }
.af-sale--past .af-sale__title { margin-block-start: .125rem; font-size: var(--step-0); font-weight: var(--w-bold); line-height: 1.3; }
.af-sale--past .af-sale__title a::after { content: ""; position: absolute; inset: 0; }
.af-sale--past .af-sale__title a:focus-visible { outline: none; }
.af-sale--past:focus-within { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: var(--r-s); }
.af-sale--past .af-sale__more {
  margin-block-start: .25rem; display: inline-flex; align-items: center; gap: .4em; color: var(--blue);
  font-size: var(--step--1); font-weight: var(--w-bold);
}
.af-sale--past .af-sale__more span { text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .25em; }
.af-sale--past .af-sale__more .i { color: var(--blue); transition: transform var(--dur-1) var(--ease); }
.af-sale--past:hover .af-sale__more .i { transform: translateX(3px); }

.af-sale--past:hover .af-sale__title a { text-decoration: underline; text-decoration-color: currentColor; text-decoration-thickness: 2px; text-underline-offset: .18em; }

/* Empty state */
.af-empty { grid-column: 1 / -1; max-inline-size: 60ch; padding: clamp(1.25rem, 1rem + 1vw, 2rem); background: var(--ground-2); border: 1px solid var(--rule); border-inline-start: 4px solid var(--blue); border-radius: var(--r-s); }
.af-empty__title { font: var(--w-bold) var(--step-2)/1.2 var(--font-sans); color: var(--ink); }
.af-empty p + p { margin-block-start: .5rem; color: var(--ink-2); }
.af-empty a { color: var(--blue); font-weight: var(--w-bold); }

/* 05 CATALOGUE: SALE INFO, TOOLBAR, SIDEBAR, PAGINATION ---------------------- */
.af-main .bp-fix-width-lot { max-inline-size: none; }
.af-main--catalogue > .bp-container { padding-block: var(--section-s) var(--section); }
.af-main .bp-auction-content { margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: var(--space-m); }
.af-main .bp-auction-content > .bp-col { display: block; flex: none; }

/* "About this sale" accordion (AF prints its own <style>; one extra class wins) */
.af-main .af-auction-accordion.af-auction-accordion { margin: 0; background: var(--white); border: 1px solid var(--rule); border-radius: var(--r-m); }
.af-main .af-auction-accordion .af-auction-accordion__header {
  min-block-size: 3.5rem; padding: .75rem 1.25rem; background: var(--white); color: var(--blue); border-radius: var(--r-m);
}
.af-main .af-auction-accordion .af-auction-accordion__header:hover { background: var(--ground-2); }
.af-main .af-auction-accordion .af-auction-accordion__title { font: var(--w-bold) var(--step-1)/1.3 var(--font-sans); color: var(--blue); }
.af-main .af-auction-accordion .af-auction-accordion__chevron { inline-size: 2rem; block-size: 2rem; border: 1px solid var(--rule-strong); border-radius: var(--r-pill); padding: .25rem; }
.af-main .af-auction-accordion .af-auction-accordion__chevron svg { fill: var(--blue); }
.af-main .af-auction-accordion .af-auction-accordion__content { padding: .25rem 1.25rem 1.25rem; border-block-start: 1px solid var(--rule); color: var(--ink-2); max-inline-size: 75ch; }
.af-main .af-auction-accordion__content p { margin-block: .625rem 0; }
.af-main .af-auction-accordion__content p:has(> br:only-child) { display: none; }
.af-main .af-auction-accordion__content div[style] { margin-block-start: .75rem !important; color: var(--ink); }
.af-main .bp-content__wrp-tools:not(:has(*)) { display: none; }

/* Toolbar: sort, sold filter, search | pagination, page size. AF lays this out with flex orders at five
   breakpoints; one set of rules here (selectors carry AF's own classes to outrank them). */
.af-main .bp-lots.bp-tools { margin: 0; padding: 0; display: block; inline-size: 100%; }
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; max-inline-size: none;
  padding: .875rem clamp(.875rem, .5rem + 1vw, 1.25rem); background: var(--ground-2); border: 1px solid var(--rule); border-radius: var(--r-m);
}
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools > .bp-content__filter {
  order: 0; flex: 999 1 34rem; display: flex; flex-wrap: wrap; align-items: center; gap: .625rem; margin: 0; min-inline-size: 0;
}
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-content__filter :is(.bp-form_sorter, .bp-form_sold-unsold, .bp-form_category) {
  flex: 1 1 10rem; min-inline-size: 0; max-inline-size: 16rem; margin: 0; display: block;
}
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-content__filter .bp-content__filter {
  flex: 2 1 15rem; display: block; margin: 0; min-inline-size: 0; max-inline-size: 24rem;
}
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-content__filter .bp-form__search { display: block; min-inline-size: 0; inline-size: 100%; margin: 0; }
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-form-group, .af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-form-tools__item { margin: 0; padding: 0; max-inline-size: none; }
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-form-group__inner { display: block; inline-size: 100%; max-inline-size: none; }
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-form__search .bp-form-group__inner { position: relative; display: flex; }
.af-main .bp-lots.bp-tools .bp-from__tools .select2-container { display: block; inline-size: 100% !important; }
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-form__search .bp-form-control {
  inline-size: 100%; min-block-size: 2.75rem; margin: 0; padding: .5rem 3rem .5rem .875rem; background: var(--white); border: 1px solid var(--field-line);
  border-radius: var(--r-xs); color: var(--ink); font: var(--w-regular) var(--step--1)/1.3 var(--font-sans);
}
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-form__search .bp-form-control::placeholder { color: var(--ink-3); font-size: inherit; }
.af-main .bp-form__search .bp-btn-search, .af-main .bp-form__search .bp-btn-close {
  position: absolute; inset-block: 0; inset-inline-end: 0; inline-size: 2.75rem; min-block-size: 2.75rem; padding: 0;
  display: grid; place-items: center; background: none; border: 0; color: var(--blue); font-size: 1.375rem;
}
.af-main .bp-form__search .bp-btn-close { inset-inline-end: 2.5rem; }
.af-main .bp-form__search .bp-btn-search .icon-search { display: block; inline-size: 1.125rem; block-size: 1.125rem; }
.af-main .bp-lots.bp-tools .bp-from.bp-from__tools > .bp-content__pagination {
  order: 1; flex: 1 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .625rem 1rem; margin: 0; padding: 0; inline-size: auto;
}
.af-main .bp-lots.bp-tools .bp-content__pagination .bp-form_per_page { flex: none; max-inline-size: none; }
.af-main .bp-form_per_page .bp-form-group__inner { display: flex !important; align-items: center; gap: .5rem; }
.af-main .bp-lots.bp-tools .bp-form_per_page label { display: inline; flex: none; inline-size: auto; margin: 0; color: var(--ink-2); font: var(--w-regular) var(--step--1)/1.3 var(--font-sans); white-space: nowrap; }
.af-main .bp-lots.bp-tools .bp-form_per_page .select2-container { inline-size: 6.25rem !important; }
.af-main .bp-form_per_page .select2-container--default .select2-selection--single { padding-inline: .75rem 1.75rem; }
@media (max-width: 639.98px) {
  .af-main .bp-lots.bp-tools .bp-from.bp-from__tools > .bp-content__pagination { flex: 1 1 100%; justify-content: space-between; }
  .af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-content__filter .bp-content__filter { flex-basis: 100%; max-inline-size: none; }
  .af-main .bp-lots.bp-tools .bp-from.bp-from__tools .bp-content__filter :is(.bp-form_sorter, .bp-form_sold-unsold, .bp-form_category) { max-inline-size: none; }
}

/* Pagination (WordPress markup; AF prints it in the toolbar and under the grid) */
.af-main .pagination { margin: 0; }
.af-main .pagination .nav-links, .af-main .bp-lots .pagination .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; inline-size: auto; margin: 0; }
.af-main .bp-lots .pagination { padding: 0; margin: 0; flex-basis: auto; }
.af-main .bp-lots .pagination .nav-links .page-numbers { display: inline-grid; flex: none; }
.af-main .pagination .page-numbers {
  opacity: 1; pointer-events: auto; text-transform: none;
  display: inline-grid; place-items: center; min-inline-size: 2.75rem; min-block-size: 2.75rem; margin: 0; padding: 0 .75rem;
  background: var(--white); border: 1px solid var(--rule-strong); border-radius: var(--r-xs);
  color: var(--blue); font: var(--w-bold) var(--step--1)/1 var(--font-sans); text-decoration: none; font-variant-numeric: lining-nums tabular-nums;
}
.af-main .pagination a.page-numbers:hover { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }
.af-main .pagination .page-numbers.current { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }
.af-main .pagination .page-numbers.dots { background: none; border-color: transparent; min-inline-size: 1.5rem; padding: 0; pointer-events: none; }
.af-main .pagination .page-numbers.current { pointer-events: none; }
.af-main #catalog-section > .navigation.pagination { grid-column: 1 / -1; margin-block-start: var(--space-l); display: flex; justify-content: center; }

/* Side categories (catalog_layout = side_categories, when a sale has categories) */
.af-main .af-catalog-with-sidebar { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-l); margin: var(--space-l) 0 0; }
@media (min-width: 1024px) { .af-main .af-catalog-with-sidebar:has(.af-catalog-sidebar) { grid-template-columns: 16rem minmax(0, 1fr); } }
.af-main .af-catalog-sidebar { padding: 1rem 1.25rem; background: var(--white); border: 1px solid var(--rule); border-radius: var(--r-m); align-self: start; }
.af-main .af-sidebar-title { font: var(--w-bold) var(--step-1)/1.3 var(--font-sans); color: var(--ink); margin: 0 0 .5rem; }
.af-main .af-sidebar-toggle-btn { display: none; }
.af-main .af-sidebar-categories { list-style: none; margin: 0; padding: 0; }
.af-main .af-cat-label { display: flex; align-items: center; gap: .625rem; min-block-size: 2.75rem; cursor: pointer; color: var(--ink); font-size: var(--step--1); }
.af-main .af-cat-label input { inline-size: 1.125rem; block-size: 1.125rem; accent-color: var(--blue); }
.af-main .af-cat-active { font-weight: var(--w-bold); color: var(--blue); }
.af-main .af-sidebar-clear { display: inline-flex; min-block-size: 2.75rem; align-items: center; color: var(--blue); font-weight: var(--w-bold); }
@media (max-width: 768px) {
  .af-main .af-sidebar-title-desktop { display: none; }
  .af-main .af-sidebar-toggle-btn { display: flex; align-items: center; justify-content: space-between; inline-size: 100%; min-block-size: 2.75rem; color: var(--blue); font-weight: var(--w-bold); }
}

/* 06 CATALOGUE: LOT GRID + CARDS ------------------------------------------- */
.af-main .af-catalog-main { min-inline-size: 0; }
.af-main #catalog-section.bp-lots {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: clamp(1rem, .6rem + 1.2vw, 1.75rem);
  align-items: stretch; margin: var(--space-l) 0 0; padding: 0; inline-size: 100%;
}
@media (max-width: 479.98px) { .af-main #catalog-section.bp-lots { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; } }
.af-main #catalog-section > .bp-padding-text { grid-column: 1 / -1; }

.af-main .bp-lots .bp-lot {
  max-inline-size: none; inline-size: auto; margin: 0; padding: 0; position: relative; display: flex; flex-direction: column;
  background: var(--white); border: 1px solid var(--rule); border-radius: var(--r-m); overflow: hidden; box-shadow: none;
  transition: border-color var(--dur-1) var(--ease);
}
.af-main .bp-lots .bp-lot:hover { border-color: var(--blue); }
.af-main .bp-lots .bp-lot:focus-within { outline: 3px solid var(--blue); outline-offset: 3px; }

/* Image frame: square, whole object visible (true colour, no crop) — fixes AF's top:50% letterbox (gotcha 2) */
.af-main .bp-lots .bp-lot .bp-lot-gallery { position: relative; }
.af-main .bp-lots .bp-lot .bp-lot__wrp-image {
  display: block; position: relative; block-size: auto; padding: 0; aspect-ratio: 1; overflow: hidden; background-color: var(--white) !important;
  border-block-end: 1px solid var(--rule);
}
.af-main .bp-lots .bp-lot .bp-lot__image {
  position: absolute; inset: .5rem; top: .5rem; transform: none; max-block-size: none; block-size: auto; padding: 0;
  background-size: contain; background-position: center; background-repeat: no-repeat;
}
.af-main .bp-lots .bp-lot .bp-lot__image.bp-lot-gallery__slide:not(.is-active) { opacity: 0; }

/* Card gallery controls (AF lot-card-gallery.css) */
.af-main .bp-lot-gallery__nav {
  inline-size: 2.75rem; block-size: 2.75rem; background: rgb(255 255 255 / .92); color: var(--blue); border: 1px solid var(--rule);
  border-radius: var(--r-pill); font-size: 1.375rem; line-height: 1; box-shadow: none;
}
.af-main .bp-lot-gallery__nav:hover { background: var(--blue); color: var(--on-blue); }
.af-main .bp-lot-gallery__dot { inline-size: .5rem; block-size: .5rem; background: var(--rule-strong); }
.af-main .bp-lot-gallery__dot.is-active { background: var(--blue); }
/* Touch screens swipe or use the 44px arrows; the 8px dots would be the only sub-44px targets */
@media (max-width: 1024px), (pointer: coarse) { .af-main .bp-lot-gallery__dots { display: none; } }
.af-main .bp-lot-gallery__count { background: var(--blue); color: var(--on-blue); font: var(--w-bold) var(--step--2)/1 var(--font-sans); border-radius: var(--r-xs); }

/* Watch-list heart */
.af-main .bp-lot .bp__wishlist {
  inline-size: 2.75rem; block-size: 2.75rem; inset-block-start: .375rem; inset-inline-start: .375rem; border-radius: var(--r-pill);
  background-color: rgb(255 255 255 / .92); background-size: 1.125rem; background-position: center;
}
.af-main .bp-lot .bp__wishlist:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.af-main .bp-lots .bp-lot .bp-lot__wrp-image .bp__wishlist { inset-block-start: .375rem; inset-inline-start: .375rem; }

/* Card text */
.af-main .bp-lots .bp-lot .bp-lot__content {
  margin: 0; padding: .875rem 1rem 1rem; flex: 1; display: flex; flex-direction: column; gap: .5rem; justify-content: space-between; block-size: auto;
}
.af-main .bp-lots .bp-lot .bp-lot__title { margin: 0; padding: 0; text-align: start; font-size: var(--step--1); font-weight: var(--w-regular); inline-size: 100%; }
.af-main .bp-lots .bp-lot .bp-lot__title a {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden;
  color: var(--ink); font: var(--w-bold) var(--step--1)/1.35 var(--font-sans); text-decoration: none;
}
.af-main .bp-lots .bp-lot .bp-lot__title a:hover { color: var(--blue); text-decoration: underline; text-decoration-color: currentColor; }
.af-main .bp-lots .bp-lot .bp-lot__title .bp-title {
  display: block; margin: 0 0 .375rem; color: var(--blue); font: var(--w-bold) var(--step--2)/1.2 var(--font-sans); letter-spacing: var(--track-caps); text-transform: uppercase; font-variant-numeric: lining-nums tabular-nums;
}
.af-main .bp-lots .bp-lot .bp-lot__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.af-main .bp-lots .bp-lot :is(.bp__wishlist, .bp-lot-gallery__nav, .bp-lot-gallery__dot, .bp-lot__bid) { z-index: 10; }
.af-main .bp-lots .bp-lot .bp-lot__title a:focus-visible { outline: none; }
.af-main .bp-lots .bp-lot .bp-lot__message { margin: 0; font-size: var(--step--2); color: var(--ink-3); min-block-size: 0; }
.af-main .bp-lots .bp-lot .bp-lot__message:empty { display: none; }

/* Price / result line: label + Bodoni figure. AF colours the sold box blue; on paper it is a hairline row. */
.af-main .bp-lots .bp-lot .bp-lot__tool {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 .5rem; inline-size: 100%;
  min-block-size: 0; block-size: auto; margin: 0; padding: .5rem 0 0; border-block-start: 1px solid var(--rule); background: none;
}
.af-main .bp-lots .bp-lot .bp-lot__tool.bp-lead, .af-main .bp-lots .bp-lot .bp-lot__tool.bp-bg-blue,
.af-main .bp-lots .bp-lot .bp-lot__tool.bp-lead.bp-bg-red, .af-main .bp-lots .bp-lot .bp-lot__tool.bp-lead.bp-bg-green { background: none !important; padding: .5rem 0 0; }
.af-main .bp-lots .bp-lot .bp-lot__tool p { margin: 0; }
.af-main .bp-lots .bp-lot .bp-lot__tool .bp-subtitle, .af-main .bp-lots .bp-lot .bp-lot__tool.bp-lead .bp-subtitle {
  color: var(--ink-3); font: var(--w-bold) var(--step--2)/1.3 var(--font-sans); letter-spacing: .06em; text-transform: uppercase;
}
.af-main .bp-lots .bp-lot .bp-lot__tool .bp-price, .af-main .bp-lots .bp-lot .bp-lot__tool.bp-lead .bp-price {
  color: var(--blue); font: var(--w-bold) 1.375rem/1.1 var(--font-sans); font-variant-numeric: lining-nums; white-space: nowrap;
}
.af-main .bp-lots .bp-lot .bp-lot__tool.bp-bg-blue .bp-subtitle, .af-main .bp-lots .bp-lot .bp-lot__tool[data-entry^="7"] .bp-subtitle { color: var(--success); }
.af-main .bp-lots .bp-lot .bp-lot__tool .bp-lot__bid { inline-size: 100%; margin-block-start: .5rem; }
.af-main .af-hot-badge {
  inset-block-start: .5rem; inset-inline-end: .5rem; padding: .25rem .5rem; background: var(--blue); color: var(--on-blue);
  font: var(--w-bold) var(--step--2)/1.2 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; border-radius: var(--r-xs);
}
.af-main .bp-lot .bp-alert { position: absolute; inset-inline: 0; inset-block-start: 0; z-index: 11; margin: 0; padding: .375rem .75rem; background: var(--error-bg); color: var(--error); border: 0; font-size: var(--step--2); font-weight: var(--w-bold); }

/* 07 LOT PAGE: LAYOUT, NAV, GALLERY, HEADING -------------------------------- */
.af-main #single-lot.bp-container { padding-block: var(--space-l) var(--section); }
.af-main #single-lot .bp-single-lot { margin: 0; display: block; }
.af-main #single-lot .bp-single-lot > .bp-col { padding: 0; }

/* Prev / catalogue / next (minimal: .navigation-bar; classic: .bp-single-lot__head) */
.af-main #single-lot .navigation-bar, .af-main #single-lot .bp-single-lot__head {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .625rem 1rem;
  margin: 0 0 var(--space-l); padding: 0 0 var(--space-s); border-block-end: 1px solid var(--rule); background: none;
}
.af-main #single-lot .navigation-bar .nav-item, .af-main #single-lot .bp-single-lot__head .bp-tools__item {
  display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: .5rem 1rem; margin: 0;
  background: var(--white); border: 1px solid var(--rule-strong); border-radius: var(--r-xs);
  color: var(--blue) !important; background-color: var(--white) !important; font: var(--w-bold) var(--step--1)/1.2 var(--font-sans); text-decoration: none; text-transform: none;
}
.af-main #single-lot .navigation-bar .nav-item:hover, .af-main #single-lot .bp-single-lot__head .bp-tools__item:hover { background-color: var(--blue) !important; border-color: var(--blue); color: var(--on-blue) !important; }
.af-main #single-lot .navigation-bar .catalog-link { order: 0; }
.af-main #single-lot .bp-single-lot__head { color: var(--ink-2); font-size: var(--step--1); text-transform: none; }
.af-main #single-lot .bp-single-lot__head .bp-title { color: var(--blue); font: var(--w-bold) var(--step--2)/1.2 var(--font-sans); letter-spacing: var(--track-caps); text-transform: uppercase; font-variant-numeric: lining-nums tabular-nums; }
.af-main #single-lot .bp-single-lot__head .bp-tools .bp-tools__item { inline-size: auto; block-size: auto; overflow: visible; user-select: auto; }
.af-main #single-lot .bp-single-lot__head > div { flex-wrap: wrap !important; justify-content: flex-end; }
.af-main #single-lot .bp-single-lot__head .bp-tools { display: flex; flex-wrap: wrap; gap: .5rem; }
.af-main #single-lot .bp-single-lot__head .bp-tools__item::before, .af-main #single-lot .bp-single-lot__head .bp-tools__item::after { display: none; }
.af-main #single-lot .af-goto-lot { display: flex; align-items: center; gap: .375rem; margin: 0 0 0 auto; }
/* AF's GoToLot prints an inline sheet with !important on every property: matched here. */
.af-main #single-lot .af-goto-lot .lgl-input {
  inline-size: 6.5rem !important; min-block-size: 2.75rem; padding: .375rem .75rem !important; background: var(--white) !important;
  border: 1px solid var(--field-line) !important; border-radius: var(--r-xs) !important; color: var(--ink) !important;
  font: var(--w-regular) var(--step--1)/1.2 var(--font-sans) !important;
}
.af-main #single-lot .af-goto-lot .lgl-btn {
  min-block-size: 2.75rem; padding: .375rem 1rem !important; background: var(--blue) !important; color: var(--on-blue) !important;
  border: 1px solid var(--blue) !important; border-radius: var(--r-xs) !important; font: var(--w-bold) var(--step--1)/1 var(--font-sans) !important;
}
.af-main #single-lot .af-goto-lot .lgl-btn:hover { background: var(--blue-deep) !important; }
.af-main #single-lot .af-goto-lot .lgl-msg { color: var(--error) !important; font-size: var(--step--2) !important; }
.af-main #single-lot .af-goto-lot .lgl-msg:empty { display: none; }
@media (max-width: 639.98px) {
  .af-main #single-lot .navigation-bar .af-goto-lot { margin: 0; inline-size: 100%; }
  .af-main #single-lot .navigation-bar { display: grid; grid-template-columns: 1fr 1fr 1fr; }
  .af-main #single-lot .navigation-bar .nav-item { justify-content: center; padding-inline: .5rem; }
  .af-main #single-lot .navigation-bar .af-goto-lot { grid-column: 1 / -1; margin: 0; }
  .af-main #single-lot .navigation-bar .af-goto-lot .lgl-input { flex: 1; inline-size: auto; }
}

/* Two columns from 1024px: gallery 7 / details 5. DOM order differs by layout, so areas place them. */
.af-main #single-lot .bp-single-lot__body { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "gallery" "main"; gap: var(--space-l); margin: 0; }
.af-main #single-lot .bp-single-lot__body > .bp-body__gallery { grid-area: gallery; }
.af-main #single-lot .bp-single-lot__body > .bp-body__main { grid-area: main; }
@media (min-width: 1024px) {
  .af-main #single-lot .bp-single-lot__body { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "gallery main"; gap: clamp(2rem, 1rem + 2.5vw, 4rem); align-items: start; }
  .af-main #single-lot .bp-single-lot__body > .bp-body__gallery { position: sticky; inset-block-start: calc(var(--header-h) + 1rem); }
}
.af-main #single-lot .bp-body__gallery, .af-main #single-lot .bp-body__main { inline-size: auto; max-inline-size: none; flex: none; margin: 0; padding: 0; min-inline-size: 0; }
.af-main #single-lot .bp-body__main { display: flex; flex-direction: column; gap: var(--space-m); }

/* Gallery: AF's swiper keeps its own 4:3 slides (padding-bottom 75%) and contain-fit images */
.af-main #single-lot .bp-body__gallery { display: block; }
.af-main #single-lot .bp-gallery-top { inline-size: 100%; max-inline-size: 100%; background: var(--white); border: 1px solid var(--rule); border-radius: var(--r-m); }
.af-main #single-lot .bp-gallery-top .swiper-slide { background-color: var(--white); }
.af-main #single-lot .bp-gallery-top :is(.swiper-button-next, .swiper-button-prev) {
  display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; margin-block-start: -1.375rem;
  background: rgb(255 255 255 / .92) none; border: 1px solid var(--rule); border-radius: var(--r-pill); color: var(--blue);
}
.af-main #single-lot .bp-gallery-top :is(.swiper-button-next, .swiper-button-prev)::after {
  content: ""; inline-size: .625rem; block-size: .625rem; border: solid var(--blue); border-width: 2px 2px 0 0; transform: rotate(45deg); margin-inline-start: -.25rem; font-size: 0;
}
.af-main #single-lot .bp-gallery-top .swiper-button-prev::after { transform: rotate(-135deg); margin-inline: .25rem 0; }
.af-main #single-lot .bp-gallery-top .swiper-button-disabled { opacity: .35; }
.af-main #single-lot .bp-gallery-thumbs { inline-size: 100%; margin-block-start: .75rem; }
.af-main #single-lot .bp-gallery-thumbs .swiper-slide { border: 1px solid var(--rule); border-radius: var(--r-s); opacity: .7; cursor: pointer; background-color: var(--white); }
.af-main #single-lot .bp-gallery-thumbs .swiper-slide-thumb-active { opacity: 1; outline: 2px solid var(--blue); outline-offset: -2px; }

/* Heading: AF prints a bare h1 (gotcha 3), "Lot 196: title" in minimal, "title" in classic */
.af-main #single-lot .bp-desc { margin: 0; padding: 0; }
.af-main #single-lot .bp-desc h1 {
  margin: 0; color: var(--ink); font: var(--w-bold) var(--step-3)/1.15 var(--font-sans); letter-spacing: var(--track-tight); text-wrap: balance; max-inline-size: 30ch;
}
.af-main #single-lot .bp-desc h1 .af-lot-no {
  display: block; margin-block-end: .625rem; color: var(--blue); font: var(--w-bold) var(--step--2)/1.2 var(--font-sans); letter-spacing: var(--track-caps); text-transform: uppercase; font-variant-numeric: lining-nums tabular-nums;
}
.af-main #single-lot .af-lot-view-counter, .af-main #single-lot .af-lot-bid-counter { text-transform: none; display: inline-flex; align-items: center; gap: .25rem; margin: .625rem 1rem 0 0; color: var(--ink-3); font-size: var(--step--2); }

/* 08 LOT PAGE: BID PANEL, RESULTS, DESCRIPTION, TOOLS ------------------------- */
.af-main #single-lot .lot-actions-wrp.bp-control {
  position: relative; margin: 0; padding: clamp(1rem, .8rem + 1vw, 1.5rem); background: var(--white);
  border: 1px solid var(--rule); border-block-start: 3px solid var(--blue); border-radius: var(--r-m); box-shadow: var(--shadow-card);
}
.af-main #single-lot .lot-actions-wrp .bp-control__inner { margin: 0; padding: 0; }
.af-main #single-lot #bidFormSection { display: grid; gap: var(--space-s); padding: 0; }
.af-main #single-lot #auctionStartTimer {
  margin: 0; padding-inline-end: 3rem; color: var(--ink); font: var(--w-bold) var(--step-0)/1.4 var(--font-sans); text-align: start; text-transform: none;
}
.af-main #single-lot #auctionStartTimer:empty { display: none; }
.af-main #single-lot #auctionStartTimer .bp-start-countdown { color: var(--blue); font-weight: var(--w-bold); font-variant-numeric: lining-nums tabular-nums; }
.af-main #single-lot .lot-actions-wrp .bp__wishlist { inset-block-start: .625rem; inset-inline-end: .625rem; inset-inline-start: auto; }
.af-main #single-lot .bp-control__desc > :first-child { padding-inline-end: 3rem; }
.bp_archived_auction .af-main #single-lot .lot-actions-wrp .bp__wishlist { display: none; }
.bp_archived_auction .af-main #single-lot .bp-control__desc > :first-child { padding-inline-end: 0; }
.af-main #single-lot #auctionIsLive-section { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; margin: 0; }
.af-main #single-lot #auctionIsLive-section:empty { display: none; }
.af-main #single-lot #auctionIsLive-section .bp-form-group__inner { margin: 0; flex: 1 1 12rem; min-inline-size: 0; }
.af-main #single-lot #auctionIsLive-section .bp-form-group__inner:has(.bp-btn) { flex: 0 0 auto; }
.af-main #single-lot #auctionIsLive-section .bp-form-group__label { display: block; margin: 0 0 .375rem; color: var(--ink); font: var(--w-bold) var(--step--1)/1.3 var(--font-sans); }
.af-main #single-lot .bp-control__desc { display: grid; gap: 0; margin: 0; padding: 0; }
.af-main #single-lot .bp-control__desc > p, .af-main #single-lot .bp-control__desc .vat-field {
  display: flex; justify-content: space-between; gap: 1rem; margin: 0; padding: .5rem 0; border-block-start: 1px dashed var(--rule);
  color: var(--ink-2); font-size: var(--step--1); line-height: 1.4;
}
.af-main #single-lot .bp-control__desc > p span, .af-main #single-lot .bp-control__estimate span { color: var(--blue); font-weight: var(--w-bold); font-variant-numeric: lining-nums; text-align: end; }
.af-main #single-lot .bp-control__desc .bp-control__estimate span { font: var(--w-bold) 1.25rem/1.1 var(--font-sans); }
.af-main #single-lot #vat-and-commission p { justify-content: flex-start; }
.af-main #single-lot #preSale-section:empty { display: none; }
.af-main #single-lot .bp-control__title { color: var(--blue); }

/* Results and notices AF writes after the panel: #leadingBid, #soldBid */
.af-main #single-lot .bp-control__notice_wrp { margin: 0; }
.af-main #single-lot .bp-control__notice_wrp:not(:has(*)) { display: none; }
.af-main #single-lot .bp-control__notice_wrp .bp-control__notice:not(:has(:not(.hidden))) { display: none; }
.af-main #single-lot .bp-control__notice {
  inline-size: 100%; margin: 0; padding: .875rem 1.125rem; background: var(--ground-2); border: 1px solid var(--rule);
  border-inline-start: 4px solid var(--blue); border-radius: var(--r-s); color: var(--ink); font-size: var(--step-0);
}
.af-main #single-lot .bp-control__notice :is(p, span, strong) { color: inherit; font-size: inherit; }
.af-main #single-lot .bp-control__notice .bp-price, .af-main #single-lot .bp-control__notice strong { font-family: var(--font-sans); font-weight: var(--w-bold); font-size: 1.375rem; color: var(--blue); }
.af-main #single-lot .bp-control__notice.bp-bg-blue, .af-main #single-lot .bp-control__notice[class*="sold"] { border-inline-start-color: var(--success); background-color: var(--success-bg) !important; } /* AF: .bp-bg-blue { background-color: #18428e !important } */
.af-main #single-lot .bp-control_notsold, .af-main #single-lot .bp-control__notice.bp-bg-black { background: var(--ground-2); color: var(--ink); }

/* Description */
.af-main #single-lot .bp-body__main_content { margin: 0; padding: 0; color: var(--ink); }
.af-main #single-lot .bp-body__main_content > .title { margin: 0 0 .5rem; color: var(--ink); font: var(--w-bold) var(--step-1)/1.3 var(--font-sans); }
.af-main #single-lot .bp-body__main_content > .title:empty, .af-main #single-lot .bp-body__main_content > .title:not(:has(*)):is(:empty) { display: none; }
.af-main #single-lot .bp-body__main_content .body { max-inline-size: 68ch; font-size: var(--step-0); line-height: var(--lh-body); }
.af-main #single-lot .bp-body__main_content .body p + p { margin-block-start: .875em; }
.af-main #single-lot #houseInfo-section {
  margin-block-start: var(--space-m); padding: .875rem 1rem; background: var(--ground-2); border-radius: var(--r-s);
  color: var(--ink-2); font-size: var(--step--1); line-height: 1.5;
}
.af-main #single-lot #houseInfo-section hr { display: none; }
.af-main #single-lot .bp-params-group:not(:has(*)) { display: none; }
.af-main #single-lot #additional-info-block:empty { display: none; }

/* Share + links */
.af-main #single-lot #wrpLotTools { display: grid; gap: .5rem 1.5rem; margin: 0; padding-block-start: var(--space-m); border-block-start: 1px solid var(--rule); }
.af-main #single-lot #wrpLotTools > .title { margin: 0; color: var(--ink-2); font-size: var(--step--1); }
.af-main #single-lot #wrpLotTools > .title strong { font-weight: var(--w-bold); color: var(--blue); }
.af-main #single-lot .share-btn.bp-share-btn-list { display: flex; flex-wrap: wrap; gap: .375rem; margin: 0; }
.af-main #single-lot .share-btn__link {
  display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border: 1px solid var(--rule-strong); border-radius: var(--r-pill);
  color: var(--blue); background: var(--white); cursor: pointer;
}
.af-main #single-lot .share-btn__link:hover { background: var(--blue); border-color: var(--blue); color: var(--on-blue); }
.af-main #single-lot .share-btn__link .bp-share { display: grid; place-items: center; inline-size: 1.125rem; block-size: 1.125rem; margin: 0; background: none; }
.af-main #single-lot .share-btn__link svg { inline-size: 1.125rem; block-size: 1.125rem; fill: currentColor; }
.af-main #single-lot .share-btn__link svg * { fill: currentColor; }
.af-main #single-lot ul.bp-info__item { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.af-main #single-lot .bp-info__elem { margin: 0; padding: 0; }
.af-main #single-lot .bp-info__elem::before { display: none; }
.af-main #single-lot .bp-info__link {
  display: inline-flex; align-items: center; min-block-size: 2.75rem; color: var(--blue); font-weight: var(--w-bold); font-size: var(--step--1);
  text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .25em;
}
.af-main #single-lot .bp-info__link:hover { text-decoration-thickness: 2px; color: var(--blue); }

/* AF's own lot-page type (18px/34px greys, white result text on dark notices) */
.af-main #single-lot .bp-control__desc { color: var(--ink-2); font-size: var(--step--1); line-height: 1.45; font-weight: var(--w-regular); }
.af-main #single-lot .bp-control .bp-control__commission { color: var(--ink-2); font-size: var(--step--1); line-height: 1.4; font-weight: var(--w-regular); }
.af-main #single-lot .bp-control .bp-form-group__inline { max-inline-size: none; }
.af-main #single-lot .bp-control .bp-btn-default { block-size: auto; min-inline-size: 7rem; }
.af-main #single-lot .bp-control__notice .bp-title { color: var(--ink); font: var(--w-regular) var(--step-0)/1.45 var(--font-sans); margin: 0 .5rem 0 0; }
.af-main #single-lot .bp-control__notice .bp-bid, .af-main #single-lot .bp-control__notice .bp-price { color: var(--blue); font: var(--w-bold) 1.375rem/1.2 var(--font-sans); }
.af-main #single-lot .bp-control__notice.bp-control__notice_green, .af-main #single-lot .bp-control__notice.bp-control__notice_blue { background: var(--ground-2); border-inline-start-color: var(--success); }
.af-main #single-lot .bp-control__notice.bp-control__notice-mod { background: var(--white); border: 1px solid var(--rule); border-inline-start: 4px solid var(--blue); }

/* 09 ACCOUNT ------------------------------------------------------------------ */
.af-main--account #profile-page { padding-block: var(--section); }
.af-main--account #profile-page:empty { min-block-size: 12rem; }
.af-main--account > .bp-content.bp-add-padding:empty { display: none; }
.af-main--account #profile-page .bp-tabs, .af-main--account #profile-page .nav-tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-block-end: 1px solid var(--rule); margin: 0 0 var(--space-l); padding: 0; }
.af-main--account #profile-page :is(.bp-tabs-link, .nav-link) {
  display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: .5rem 1rem; color: var(--ink-2); font-weight: var(--w-bold); text-decoration: none;
  border-block-end: 3px solid transparent; margin-block-end: -1px; background: none;
}
.af-main--account #profile-page :is(.bp-tabs-link, .nav-link):is(.active, [aria-selected="true"], :hover) { color: var(--blue); border-block-end-color: var(--blue); }
.af-main--account #profile-page h2, .af-main--account #profile-page h3 { color: var(--blue); }
.af-main--account #profile-page :is(table) { inline-size: 100%; border-collapse: collapse; font-size: var(--step--1); }
.af-main--account #profile-page :is(th, td) { padding: .5rem .625rem; border-block-end: 1px solid var(--rule); text-align: start; }
.af-main--account #profile-page .bp-content { margin: 0; }
/* Logged-out gate: Log in / Register buttons */
.af-main--account #profile-page > .bp-content { margin: 0; padding: 0; }
.af-main--account #profile-page .bp-col:has(> .bp-btn-login, > .bp-btn-register) { display: flex; gap: .75rem; justify-content: flex-start; flex-wrap: wrap; padding: 0; }
.af-main--account #profile-page .bp-header__btn { margin: 0; min-inline-size: 10rem; }
@media (max-width: 479.98px) { .af-main--account #profile-page .bp-header__btn { flex: 1 1 100%; } }

/* 10 BUTTONS + FIELDS AF RENDERS WITH JS (screens and modals) ------------------ */
:is(.af-main, .bp-modal) .bp-btn:is(.bp-btn-default, .bp-btn-black, .bp-btn-login, .bp-btn-register, .bp-btn-outline, .bp-btn-outline-default, .bp-btn-primal, .bp-btn-outline-primal) {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em; inline-size: auto; block-size: auto; min-block-size: 3.25rem;
  max-inline-size: 100%; margin: 0; padding: .5rem 1.5rem; border: 1px solid var(--blue); border-radius: var(--r-xs);
  background: var(--blue); color: var(--on-blue); opacity: 1;
  font: var(--w-bold) var(--step-btn)/1.2 var(--font-sans); letter-spacing: .005em; text-transform: none; text-decoration: none; text-align: center;
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}
:is(.af-main, .bp-modal) .bp-btn:is(.bp-btn-default, .bp-btn-black, .bp-btn-login, .bp-btn-primal):hover { background: var(--blue-deep); border-color: var(--blue-deep); color: var(--on-blue); }
:is(.af-main, .bp-modal) .bp-btn:is(.bp-btn-register, .bp-btn-outline, .bp-btn-outline-default, .bp-btn-outline-primal) { background: transparent; color: var(--blue); }
:is(.af-main, .bp-modal) .bp-btn:is(.bp-btn-register, .bp-btn-outline, .bp-btn-outline-default, .bp-btn-outline-primal):hover { background: var(--blue); color: var(--on-blue); }
:is(.af-main, .bp-modal) .bp-btn.bp-btn-sm { min-block-size: 2.75rem; padding-inline: 1rem; font-size: var(--step--1); }
:is(.af-main, .bp-modal) .bp-btn:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
:is(.af-main, .bp-modal) .bp-btn:is([disabled], .disabled) { opacity: .55; cursor: not-allowed; }
/* Buttons on the navy banner (#userFront: approval / live-auction buttons) */
.af-banner .bp-btn:is(.bp-btn-default, .bp-btn-black, .bp-btn-login, .bp-btn-primal), .af-banner .bp-header__btn {
  background: var(--white); border-color: var(--white); color: var(--blue);
}
.af-banner .bp-btn:is(.bp-btn-default, .bp-btn-black, .bp-btn-login, .bp-btn-primal):hover { background: var(--blue-tint); border-color: var(--blue-tint); color: var(--blue); }
.af-banner .bp-btn:is(.bp-btn-register, .bp-btn-outline, .bp-btn-outline-default) { background: transparent; color: var(--on-blue); border-color: rgb(255 255 255 / .7); }
.af-banner .bp-btn:focus-visible { outline-color: var(--on-blue); }
.af-banner #userFront :is(p, span) { color: var(--on-blue-2); }

/* Fields */
:is(.af-main, .bp-modal) .bp-from .bp-form-group { margin: 0 0 1rem; }
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp-form-group__inner { margin: 0; }
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp-form-control:not(.select2-hidden-accessible) {
  min-block-size: 3.375rem; padding: .75rem 1rem; background: var(--white); border: 1px solid var(--field-line); border-radius: var(--r-xs);
  color: var(--ink); font: var(--w-regular) var(--step-0)/1.3 var(--font-sans);
}
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp-form-control::placeholder { color: var(--ink-3); font-size: inherit; font-weight: var(--w-regular); }
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp-form-control:focus {
  outline: 2px solid var(--blue); outline-offset: 0; box-shadow: 0 0 0 4px rgb(0 0 126 / .18); border-color: var(--blue);
}
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp-form-control.bp-error, :is(.af-main, .bp-modal) .bp-from .bp-form-control[aria-invalid="true"] { border: 2px solid var(--error); }
:is(.af-main, .bp-modal) .bp-form-error { display: block; margin-block-start: .375rem; color: var(--error); font-size: var(--step--1); font-weight: var(--w-bold); }
:is(.af-main, .bp-modal) .bp-form-error.hidden { display: none; }
:is(.af-main, .bp-modal) .errors-group.bp-text-red, :is(.af-main, .bp-modal) .bp-text-red { color: var(--error); }
:is(.af-main, .bp-modal) .errors-group:not(.hidden):not(:empty) {
  margin: 0 0 1rem; padding: .75rem 1rem; background: var(--error-bg); border-inline-start: 4px solid var(--error); border-radius: var(--r-s);
  text-align: start; font-size: var(--step--1); font-weight: var(--w-bold);
}
:is(.af-main, .bp-modal) .af-label, :is(.af-main, .bp-modal) .bp-from .bp-form-group label.af-label, :is(.af-main, .bp-modal) .bp-from label:not(.bp-form-check-label):not(.af-label) {
  display: block; margin: 0 0 .375rem; color: var(--ink); font: var(--w-bold) var(--step--1)/1.3 var(--font-sans);
}
/* Checkboxes: AF draws them with label pseudo-elements */
:is(.af-main, .bp-modal) .bp-from .bp-form-group input.bp-form-check-input + label {
  display: inline-flex; align-items: flex-start; gap: .625rem; color: var(--ink); font: var(--w-regular) var(--step--1)/1.45 var(--font-sans); cursor: pointer;
}
:is(.af-main, .bp-modal) .bp-from .bp-form-group input.bp-form-check-input + label::before {
  flex: none; inline-size: 1.375rem; block-size: 1.375rem; margin: 0; top: 0; border: 1px solid var(--field-line); border-radius: var(--r-xs); background: var(--white);
}
:is(.af-main, .bp-modal) .bp-from .bp-form-group input.bp-form-check-input:checked + label::before { background: var(--blue); border-color: var(--blue); }
:is(.af-main, .bp-modal) .bp-from .bp-form-group input.bp-form-check-input:checked + label::after { left: .5rem; top: .25rem; inline-size: .375rem; block-size: .75rem; border-color: var(--on-blue); }
:is(.af-main, .bp-modal) .bp-from .bp-form-group input.bp-form-check-input:focus-visible + label::before { outline: 3px solid var(--blue); outline-offset: 2px; }
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp_show_password {
  position: absolute; display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; margin: 0;
  inset-block: auto .3125rem; top: auto; inset-inline-end: .25rem; right: .25rem; translate: none; transform: none; cursor: pointer; background-position: center;
}
:is(.af-main, .bp-modal) .bp-from .bp-form-group .bp-form-control_eye { padding-inline-end: 3.25rem; }
:is(.af-main, .bp-modal) .bp_show_password:focus-visible { outline: 3px solid var(--blue); outline-offset: 0; border-radius: var(--r-xs); }

/* Select2 single selects (sort, filters, bid amounts, page size) */
:is(.af-main, .bp-modal) .select2-container--default .select2-selection--single {
  display: flex; align-items: center; block-size: auto; min-block-size: 2.75rem; padding: 0 2.25rem 0 .875rem;
  background: var(--white); border: 1px solid var(--field-line); border-radius: var(--r-xs);
}
:is(.af-main, .bp-modal) .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0; color: var(--ink); font: var(--w-regular) var(--step--1)/1.3 var(--font-sans) !important; line-height: 1.3;
}
:is(.af-main, .bp-modal) .select2-container--default .select2-selection--single .select2-selection__arrow { block-size: 100%; inset-block-start: 0; inset-inline-end: .5rem; }
:is(.af-main, .bp-modal) .select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: var(--blue) transparent transparent transparent; }
:is(.af-main, .bp-modal) .select2-container--default.select2-container--focus .select2-selection--single,
:is(.af-main, .bp-modal) .select2-container--default .select2-selection--single:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.af-main #auctionIsLive-section .select2-container--default .select2-selection--single { min-block-size: 3.25rem; }
.af-main #auctionIsLive-section .select2-container--default .select2-selection--single .select2-selection__rendered { font: var(--w-bold) 1.125rem/1.3 var(--font-sans) !important; color: var(--blue); }

/* 11 MODALS --------------------------------------------------------------------- */
.bp-modal { font-family: var(--font-sans); color: var(--ink); }
.bp-modal .modal__overlay { background: rgb(0 0 40 / .6); z-index: var(--z-drawer); }
.bp-modal.micromodal-slide .modal__overlay, .bp-modal.micromodal-slide .modal__container { z-index: var(--z-drawer); }
.bp-modal .modal__overlay__inner { padding: clamp(1rem, 4vh, 4rem) var(--gutter); margin: 0; max-block-size: 100dvh; }
.bp-modal .modal__container, .bp-modal.modal .modal__container {
  position: relative; inline-size: 100%; max-inline-size: 34rem; padding: clamp(1.25rem, 1rem + 2vw, 2.5rem);
  background: var(--white); border-block-start: 4px solid var(--blue); border-radius: var(--r-m); box-shadow: var(--shadow-pop);
}
.bp-modal#modal-register .modal__container { max-inline-size: 40rem; }
.bp-modal.modal .modal__container.modal__container-2 { max-inline-size: 64rem; }
.bp-modal .modal__header, .bp-modal.modal .modal__header { display: block; margin: 0 0 1.25rem; padding-inline-end: 3rem; }
.bp-modal .modal__title, .bp-modal.modal .modal__header .modal__title, .bp-modal.md-modal .modal__header .modal__title {
  margin: 0; padding: 0; text-align: start; text-transform: none; color: var(--ink);
  font: var(--w-bold) var(--step-3)/1.15 var(--font-sans); letter-spacing: var(--track-tight);
}
.bp-modal.modal .modal__header .modal__title::before, .bp-modal.md-modal .modal__header .modal__title::before { display: none; }
.bp-modal .modal__subtitle { color: var(--ink-2); font: var(--w-regular) var(--step-0)/1.5 var(--font-sans); text-align: start; }
.bp-modal .modal__content { margin: 0; color: var(--ink); line-height: 1.5; }
.bp-modal .modal__close, .bp-modal .modal__overlay__inner .modal__close {
  position: absolute; inset-block-start: .75rem; inset-inline-end: .75rem; right: .75rem; top: .75rem;
  display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: 0;
  background: transparent; border: 1px solid var(--rule-strong); border-radius: var(--r-pill); color: var(--blue); font-size: 1.125rem; line-height: 1; opacity: 1;
}
.bp-modal .modal__close::before, .bp-modal .modal__overlay.bg-dark .modal__close::before { content: "✕"; color: var(--blue); }
.bp-modal .modal__close:hover { background: var(--blue); border-color: var(--blue); opacity: 1; }
.bp-modal .modal__close:hover::before { color: var(--on-blue); }
.bp-modal .modal__close:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.bp-modal .modal__footer { margin: 1.25rem 0 0; padding-block-start: 1rem; border-block-start: 1px solid var(--rule); }
.bp-modal .modal__footer .modal_links { justify-content: flex-start; }
.bp-modal .modal__footer .modal_links__item, .bp-modal .bp-form-group__link, .bp-modal .separate-page-group a {
  display: inline-flex; align-items: center; min-block-size: 2.75rem; margin: 0; color: var(--blue); font: var(--w-bold) var(--step--1)/1.3 var(--font-sans);
  text-align: start; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .25em;
}
.bp-modal .modal__footer .modal_links__item:hover, .bp-modal .bp-form-group__link:hover { text-decoration-thickness: 2px; color: var(--blue); }
.bp-modal .bp-from .bp-form-group.bp-d-flex.bp-f-center { justify-content: flex-start; }
.bp-modal .bp-from .bp-btn.bp-btn-black, .bp-modal #sendLogin, .bp-modal #sendRegister { inline-size: 100%; min-block-size: 3.5rem; }
.bp-modal .af-addr-head { margin: 1.25rem 0 .75rem; padding-block-start: 1rem; border-block-start: 1px solid var(--rule); color: var(--blue); font: var(--w-bold) var(--step-1)/1.3 var(--font-sans); }
/* Phone: label on top, country code beside the number */
.bp-modal .bp-from .bp-form-group .bp-form-group__inner.bp-form-group__phone {
  display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: .375rem .5rem; align-items: end;
}
.bp-modal .bp-from .bp-form-group .bp-form-group__phone > .af-label { grid-column: 1 / -1; grid-row: 1; margin: 0; }
.bp-modal .bp-from .bp-form-group .bp-form-group__phone > .select2-container { grid-column: 1; grid-row: 2; inline-size: 100% !important; }
.bp-modal .bp-from .bp-form-group .bp-form-group__phone > input { grid-column: 2; grid-row: 2; inline-size: 100%; }
.bp-modal .bp-from .bp-form-group .bp-form-group__phone > .bp-form-error { grid-column: 1 / -1; }
.bp-modal .bp-from .bp-form-group .bp-form-group__phone > select.hidden { display: none; }
@media (max-width: 379.98px) {
  .bp-modal .bp-from .bp-form-group .bp-form-group__inner.bp-form-group__phone { grid-template-columns: minmax(0, 1fr); }
  .bp-modal .bp-from .bp-form-group .bp-form-group__phone > input { grid-column: 1; grid-row: 3; }
}
.bp-modal .select2-container--default .select2-selection--single { min-block-size: 3.375rem; }
.bp-modal .bp-from .bp-form-group.bp-form-check { display: flex; justify-content: flex-start; text-align: start; }
.bp-modal .modal__content__item { color: var(--ink); }
.bp-modal .modal__btn { min-block-size: 2.75rem; border-radius: var(--r-xs); font-family: var(--font-sans); }
.bp-modal .bp-notice { padding: .875rem 1rem; background: var(--success-bg); border-inline-start: 4px solid var(--success); border-radius: var(--r-s); color: var(--ink); }
@media (max-width: 479.98px) {
  .bp-modal .modal__overlay__inner { padding: .75rem; }
  .bp-modal .modal__container, .bp-modal.modal .modal__container { padding: 1.25rem 1rem 1.5rem; }
}

/* Lot search results (search.php hands AF lot searches to the auctions module) */
.af-lot-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: var(--space-l) clamp(1rem, .6rem + 1.2vw, 1.75rem); margin-block-start: var(--space-xl); }
.af-lot-results .lot-card__img { aspect-ratio: 1; background: var(--white); border: 1px solid var(--rule); }
.af-lot-results .lot-card__img img { object-fit: contain; }
.af-lot-results .lot-card h2 { font-size: var(--step--1); font-weight: var(--w-bold); line-height: 1.35; }
.af-lot-results .lot-card h2 a { color: var(--blue); text-decoration: none; }
.af-lot-results .lot-card h2 a::after { content: ""; position: absolute; inset: 0; }

/* 12 SELECT2 DROPDOWNS, LOADERS, MOTION --------------------------------------------- */
.select2-container--default .select2-dropdown { border: 1px solid var(--field-line); border-radius: var(--r-xs); background: var(--white); font-family: var(--font-sans); box-shadow: var(--shadow-pop); }
.select2-container--default .select2-results__option { padding: .625rem .875rem; color: var(--ink); font-size: var(--step--1); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--blue); color: var(--on-blue); }
.select2-container--default .select2-results__option[aria-selected="true"], .select2-container--default .select2-results__option--selected { background: var(--ground-2); color: var(--blue); font-weight: var(--w-bold); }
.select2-container--default .select2-search--dropdown .select2-search__field { min-block-size: 2.75rem; border: 1px solid var(--field-line); border-radius: var(--r-xs); font: inherit; }
.af-main .bs-loader:not(.hidden) { border-color: var(--rule); border-top-color: var(--blue); }

@media (prefers-reduced-motion: reduce) {
  .af-main .bp-lots .bp-lot, .af-main .bp-lots .bp-lot:hover, .af-sale__media img, .af-main .bp-lot__image { transition: none !important; transform: none !important; }
  .bp-modal.micromodal-slide .modal__overlay, .bp-modal.micromodal-slide .modal__container { animation: none !important; }
}
@media (forced-colors: active) {
  .af-main .bp-lots .bp-lot, .af-sale--upcoming, .af-main .lot-actions-wrp.bp-control, .bp-modal .modal__container { border: 1px solid CanvasText; }
}
