/* =========================================================
   Grand Auction House — Custom Stylesheet
   Brand: Marylebone, London | AuctionForge-powered
   ========================================================= */

/* Brand variables — matched to the live grandauctionhouse.com gra.css.
   Original is monochrome grey-on-light, NOT cream-and-gold. */
:root {
  --color-primary:      #3C3C3C;
  --color-primary-hover:#656565;
  --color-accent:       #3C3C3C;   /* same as primary — no separate accent */
  --color-accent-dark:  #000000;
  --color-bg:           #F7F7F7;
  --color-bg-white:     #ffffff;
  --color-text:         #3C3C3C;
  --color-text-muted:   #76797A;
  --color-border:       #eeeeee;
  --color-footer-bg:    #3C3C3C;
  --color-footer-text:  #ffffff;
  --color-footer-bottom:#2a2a2a;
}

/* ----- Base typography ---------------------------------- */
body {
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text);
  background-color: var(--color-bg);
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.widget-title {
  /* Tall condensed sans matches the original grandauctionhouse.com headings;
     Garamond is the brand fallback and reads well on the legal pages. */
  font-family: 'Oswald', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 500;
  color: var(--color-primary);
  letter-spacing: 0.005em;
  line-height: 1.15;
}

h1 { font-size: 2.6rem; line-height: 1.1; }
h2 { font-size: 2rem; line-height: 1.15; }
h3 { font-size: 1.45rem; line-height: 1.25; }

/* Legal pages keep Garamond for body-of-text readability */
.gah-legal h1, .gah-legal h2, .gah-legal h3 {
  font-family: 'EB Garamond', Georgia, 'Times New Roman', serif;
  font-weight: 600;
}

a { color: var(--color-accent-dark); text-decoration: none; }
a:hover, a:focus { color: var(--color-accent); }

/* ----- Buttons (mirror gra.css btn-primary: white bg, dark text) ----- */
.gah-btn,
.wp-block-button .wp-block-button__link {
  display: inline-block;
  padding: 0.85em 1.6em;
  background: #ffffff;
  color: var(--color-primary) !important;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.85rem;
  border: 1px solid var(--color-primary);
  border-radius: 0;
  transition: all 0.15s linear;
  text-decoration: none;
}
.gah-btn:hover,
.gah-btn:focus,
.wp-block-button .wp-block-button__link:hover {
  background: var(--color-primary);
  color: #ffffff !important;
  border-color: var(--color-primary);
}
.gah-btn--outline {
  background: transparent;
  color: var(--color-primary) !important;
  border-color: var(--color-primary);
}
.gah-btn--outline:hover {
  background: var(--color-primary);
  color: #ffffff !important;
}

/* ----- Icon row (matches original grandauctionhouse.com) ----- */
/* Icon row is mobile-only — original grandauctionhouse.com only
   shows the phone/email/search/hamburger row at narrow widths;
   desktop uses the centered nav instead. */
.gah-iconrow { display: none; }
@media (max-width: 768px) {
  .gah-iconrow {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--color-primary);   /* #3C3C3C — matches original */
    border-top: 1px solid #2a2a2a;
  }
}
@media (max-width: 768px) {
  .gah-iconrow__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    background: var(--color-primary);
    color: #ffffff;
    border: 0;
    border-right: 1px solid rgba(255,255,255,0.08);
    cursor: pointer;
    transition: background 0.15s linear;
    text-decoration: none;
  }
  .gah-iconrow__btn:last-child { border-right: 0; }
  .gah-iconrow__btn:hover,
  .gah-iconrow__btn:focus { background: #2a2a2a; color: #ffffff; }
  .gah-iconrow__menu { background: var(--color-primary-hover); }
  .gah-iconrow__menu:hover { background: #4a4a4a; }
}

/* Search overlay */
.gah-search-overlay {
  position: fixed;
  inset: 0;
  background: rgba(26,26,26,0.96);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.gah-search-overlay form { width: min(640px, 100%); display: flex; gap: 0.5rem; }
.gah-search-overlay input[type="search"] {
  flex: 1;
  padding: 1rem 1.2rem;
  font-size: 1.2rem;
  border: 0;
  background: #fff;
}
.gah-search-overlay input[type="submit"] {
  background: var(--color-accent);
  color: var(--color-primary);
  border: 0;
  padding: 0 1.5rem;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
}
.gah-search-overlay__close {
  position: absolute;
  top: 1rem; right: 1.5rem;
  background: transparent;
  color: #fff;
  border: 0;
  font-size: 2.5rem;
  line-height: 1;
  cursor: pointer;
}

/* ----- Header / Nav ------------------------------------- */
.site-header {
  background: var(--color-bg);
  border-bottom: 0;
  padding: 1.25rem 0 0.75rem;
  text-align: center;
}
/* Stop GP from showing the redundant site title text — the logo IS the title */
.main-title, .site-description { display: none !important; }

/* Hide the "Home" page title on the homepage — the hero/logo carry the brand. */
body.home .entry-title,
body.home .page-header,
body.home .entry-header { display: none !important; }

/* Hide the theme's default page-title H1 on any page that uses the
   [gah_page_header] shortcode — the shortcode renders its own H1 hero,
   so showing the theme's `.entry-title` above it duplicates the title. */
body.gah-has-page-header .entry-title,
body.gah-has-page-header .page-header,
body.gah-has-page-header .entry-header { display: none !important; }

/* Two-column row variant: image hugs the top of its cell (used on Buying
   page where a tall image sits beside a long text column). */
.gah-two-col__sticky-img { align-self: flex-start; }
.gah-two-col__sticky-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* Airy feature list (used on /selling/ "Why Choose Us"). Generous gaps
   between items, no bullet marker — the bold lead carries the visual
   weight. Mirrors the live grandauctionhouse.com selling-page bullet
   styling. */
.gah-feature-list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}
.gah-feature-list li {
  margin: 0 0 1.6rem;
  line-height: 1.65;
}
.gah-feature-list li:last-child { margin-bottom: 0; }
.gah-feature-list strong { color: var(--color-primary); }

/* Valuations page — no hero, just a plain page heading + intro + form.
   Matches the live grandauctionhouse.com /valuations/ layout where the
   form labels sit to the LEFT of each input on a row. */
.gah-valuations { max-width: 1100px; }
.gah-valuations .gah-page-title {
  font-size: 2.4rem;
  margin: 0 0 1.5rem;
}
.gah-valuations h2 {
  font-size: 1.6rem;
  margin: 1.5rem 0 0.75rem;
}
.gah-valuations-form { margin-top: 1.5rem; }
.gah-valuations-form p { margin: 0 0 1.1rem; }
.gah-valuations-form label {
  display: grid;
  grid-template-columns: 200px 1fr;
  align-items: center;
  gap: 1rem;
  font-weight: 600;
  color: var(--color-primary);
}
@media (max-width: 600px) {
  .gah-valuations-form label {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
}
.gah-valuations-form input[type="text"],
.gah-valuations-form input[type="email"],
.gah-valuations-form input[type="tel"],
.gah-valuations-form input[type="file"],
.gah-valuations-form textarea {
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid #ccc;
  background: #fff;
  font: inherit;
  font-weight: 400;
  color: var(--color-text);
}
.gah-valuations-form textarea { min-height: 220px; resize: vertical; }
.gah-valuations-upload-help {
  margin: 1.4rem 0 0.6rem 220px;
  font-size: 0.95rem;
  color: var(--color-text-muted);
}
.gah-valuations-upload-help p { margin: 0 0 0.4rem; }
@media (max-width: 600px) {
  .gah-valuations-upload-help { margin-left: 0; }
}
/* Align the Send button with the inputs (the labels occupy the first
   200px column). Colours come from the global `.wpcf7 input[type=submit]`
   rule lower in this file. */
.gah-valuations-form input[type="submit"] { margin-left: 220px; }
@media (max-width: 600px) {
  .gah-valuations-form input[type="submit"] { margin-left: 0; }
}
/* Hide the GP-rendered page title H1 on the valuations page (we render
   our own H1 in the content, no [gah_page_header] hero here). */
body.page-id-17 .entry-title,
body.page-id-17 .page-header,
body.page-id-17 .entry-header { display: none !important; }

/* Hide the desktop primary nav on mobile — replaced by hamburger overlay */
@media (max-width: 768px) {
  .main-navigation:not(.gah-nav-open) .main-nav,
  .main-navigation:not(.gah-nav-open) .menu-toggle { display: none !important; }
  .main-navigation { background: transparent; min-height: 0; }
}

/* Mobile-menu overlay style matching original */
@media (max-width: 768px) {
  .main-navigation.gah-nav-open {
    display: block !important;
    position: fixed;
    inset: 0;
    background: #4a4a4a;
    color: #fff;
    z-index: 9998;
    overflow-y: auto;
    padding: 4rem 0 2rem;
  }
  .main-navigation.gah-nav-open .main-nav,
  .main-navigation.gah-nav-open ul { display: block !important; width: 100% !important; }
  .main-navigation.gah-nav-open .main-nav > ul > li {
    border-bottom: 1px solid rgba(255,255,255,0.08);
    width: 100%;
  }
  .main-navigation.gah-nav-open .main-nav ul li a {
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.95rem;
    padding: 1rem 1.25rem;
    display: block;
    background: transparent !important;
    box-shadow: none !important;
  }
  /* Submenus inline (always-visible) */
  .main-navigation.gah-nav-open .main-nav ul ul {
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: transparent !important;
    box-shadow: none;
    border-top: 0;
    width: 100% !important;
    pointer-events: auto !important;
  }
  .main-navigation.gah-nav-open .main-nav ul ul li a {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    padding: 0.6rem 1.25rem 0.6rem 2.25rem;
    font-size: 1rem;
    color: rgba(255,255,255,0.9) !important;
  }
  .main-navigation.gah-nav-open .main-nav ul ul li a::before {
    content: "› ";
    color: rgba(255,255,255,0.6);
    margin-right: 0.4em;
  }
  body.gah-mobile-nav-open { overflow: hidden; }
}

/* Logo size — matches gra.css `.header .logo-div` (400 desktop, 300 mobile).
   Hard-caps prevent the 3000×858 source from rendering at intrinsic size. */
.site-logo,
.site-logo .header-image,
.site-logo img.is-logo-image,
.site-logo img.custom-logo,
.custom-logo-link img,
.custom-logo {
  max-width: 400px !important;
  height: auto !important;
  width: auto !important;
}
@media (max-width: 480px) {
  .site-logo,
  .site-logo .header-image,
  .site-logo img.is-logo-image,
  .site-logo img.custom-logo,
  .custom-logo-link img,
  .custom-logo {
    max-width: 300px !important;
  }
}
.site-branding,
.inside-header {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.5rem 1.25rem;
}
/* Force GP "no-sidebar" content full width even if a sidebar slot remains */
.right-sidebar #primary, .left-sidebar #primary,
.no-sidebar #primary, body #primary.content-area {
  width: 100% !important;
  float: none !important;
}
#right-sidebar, #left-sidebar { display: none !important; }

/* Prevent any single image from causing horizontal overflow */
img { max-width: 100%; height: auto; }
html, body { overflow-x: hidden; }

/* Logo size — match the live grandauctionhouse.com header proportions
   (a noticeably larger logo than GP's default). The 3000×858 source still
   needs an upper cap so it doesn't blow out the viewport on small screens. */
.site-logo,
.site-logo .header-image,
.site-logo img.is-logo-image,
.site-logo img.custom-logo,
.custom-logo-link img,
.custom-logo {
  max-width: 480px !important;
  height: auto !important;
  width: auto !important;
}
@media (max-width: 1024px) {
  .site-logo,
  .site-logo .header-image,
  .site-logo img.is-logo-image,
  .site-logo img.custom-logo,
  .custom-logo-link img,
  .custom-logo {
    max-width: 360px !important;
  }
}
@media (max-width: 600px) {
  .site-logo,
  .site-logo .header-image,
  .site-logo img.is-logo-image,
  .site-logo img.custom-logo,
  .custom-logo-link img,
  .custom-logo {
    max-width: 260px !important;
  }
}
.inside-header { padding: 1rem 1.25rem; }

/* Login | Register sits inline with the main menu on the right-hand side
   of the navigation row. Injected via `generate_inside_navigation` so it
   becomes a flex sibling of `.main-nav` inside `.inside-navigation`
   (which is already `display: flex; justify-content: space-between`).
   `flex: 0 0 auto` makes it take exactly its content width; `margin-left:
   auto` pushes it to the far right so the menu (still left-of-it) has the
   room it needs without overlap. */
.main-navigation .inside-navigation .gah-header-auth,
.gah-header-auth {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  align-items: center;
  padding: 0 1rem;
}
/* Stop the centred-nav rule from making the menu fill the whole row —
   we need room next to it for the auth block. */
.nav-aligned-center .main-navigation .inside-navigation .main-nav {
  flex: 0 1 auto;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .gah-header-auth {
    margin-left: 0;
    width: 100%;
    justify-content: center;
    padding: 0.5rem 0;
  }
}

.gah-header-auth .user_nav .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}
/* Hide the search list-item (we have a separate search elsewhere) and
   any icon-fonts inside the link (icon-search, icon-user). */
.gah-header-auth .user_nav .menu > li:has(.search-link),
.gah-header-auth .user_nav .menu > li > a.search-link { display: none !important; }
.gah-header-auth .user_nav .menu > li > a > i,
.gah-header-auth .user_nav .menu .icon-search,
.gah-header-auth .user_nav .menu .icon-user { display: none !important; }
.gah-header-auth .user_nav .menu > li > a {
  color: var(--color-primary);
  font-size: 0.95rem;
  text-decoration: none;
  padding: 0.25rem 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gah-header-auth .user_nav .menu > li > a:hover {
  color: #000;
  text-decoration: underline;
}
/* The vertical-bar divider between Login and Register is provided by
   AuctionForge's own `.user_nav .menu .wrpRegisterLink::before` rule
   (1px × 22px black bar). No separator pseudo here — adding one would
   stack a second divider on top. */
@media (max-width: 600px) {
  .gah-header-auth .user_nav .menu > li > a { font-size: 0.8rem; }
}

/* Prevent any single image from causing horizontal overflow */
img { max-width: 100%; height: auto; }
html, body { overflow-x: hidden; }
.main-navigation {
  background: transparent;
}
.main-navigation .main-nav ul li a {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary) !important;
  padding: 1.4rem 1.1rem;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a {
  color: var(--color-accent-dark) !important;
  box-shadow: inset 0 -3px 0 var(--color-accent);
}
.main-navigation .main-nav ul ul {
  background: #ffffff;
  border-top: 2px solid var(--color-accent);
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}
.main-navigation .main-nav ul ul li a {
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 14px;
  padding: 0.75rem 1.1rem;
}
.main-navigation .main-nav ul ul li:hover > a {
  border-left: 3px solid var(--color-accent);
}

/* ----- Hero (matches original — clean clickable banner image) --- */
.gah-hero-link {
  display: block;
  width: 100%;
  line-height: 0;       /* removes inline image gap */
  background: var(--color-bg);
}
.gah-hero-img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

/* ----- Sections — `.gah-section` is full-width by default,
   inner content is constrained to 1200px max so headings + grids
   sit centred while the section background can bleed edge-to-edge. */
.gah-section {
  padding: 3rem 1.25rem;
  width: 100%;
}
.gah-section__inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* When the homepage uses GP's full-width-content, the entry-content
   already spans 100% of the viewport. The about-row + hero want to
   reach edge-to-edge with NO inner padding, while sections like
   Services / Highlights keep their inner container. */
.home .entry-content > .wp-block-group.gah-section,
.home article.entry .gah-section { padding-left: 1.25rem; padding-right: 1.25rem; }

/* About-row + hero break out of any residual padding */
.home .gah-about-row,
.home .gah-hero-link {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
}
/* Wrap the about-row in zero-padding context */
.home .entry-content > .wp-block-group:has(.gah-about-row) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Same for any block-group wrapping the hero */
.home .entry-content > .wp-block-group:has(.gah-hero-link),
.home .entry-content > p:has(.gah-hero-link) {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}
/* Section heading — matches `.sectionHeader` in gra.css */
.gah-section__heading {
  text-align: center;
  margin-bottom: 1.5rem;
  padding-top: 30px;
  padding-bottom: 10px;
}
.gah-section__heading h2 {
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 36px;
  color: #333;
  font-weight: 500;
  margin: 0;
  letter-spacing: 0.005em;
}

/* ----- Services grid — Mondrian-style asymmetric layout
   matching gra.css: row 1 = 50/50, row 2 = 33/66.
   Tiles are darkened via filter so the large white label reads. */
.gah-services {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px;
  padding: 0 10px;
}
.gah-service-card { grid-column: span 3; }                   /* mobile = full row */
@media (min-width: 768px) {
  .gah-service-card:nth-child(1),
  .gah-service-card:nth-child(2) { grid-column: span 3; }    /* tablet 50/50 still each row */
}
@media (min-width: 992px) {
  .gah-services { grid-template-columns: repeat(6, 1fr); }   /* 6-col grid for 50/50 + 33/66 */
  .gah-service-card:nth-child(1),
  .gah-service-card:nth-child(2) { grid-column: span 3; }    /* 50% each */
  .gah-service-card:nth-child(3) { grid-column: span 2; }    /* 33.33% */
  .gah-service-card:nth-child(4) { grid-column: span 4; }    /* 66.66% */
}

.gah-service-card {
  position: relative;
  display: block;
  overflow: hidden;
  height: 200px;                           /* matches gra.css fixed tile height */
  background: #000;
}
@media (max-width: 767.98px) {
  .gah-service-card { height: 150px; }
}
.gah-service-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.7);                 /* darken so the white label reads */
  transition: transform 0.4s ease, filter 0.25s ease;
}
.gah-service-card__label {
  position: absolute;
  left: 16px;
  bottom: 8px;
  color: #ffffff;
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.005em;
  text-shadow: 0 1px 4px rgba(0,0,0,0.45);
}
@media (max-width: 767.98px) {
  .gah-service-card__label { font-size: 30px; }
}
.gah-service-card:hover img {
  transform: scale(1.04);
  filter: brightness(0.55);
}

/* ----- About row — image left, dark-grey panel right.
   Both columns stretch to the same height so the image
   fills its cell and matches the panel. */
.gah-about-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
  max-height: 700px;
}
@media (max-width: 768px) {
  .gah-about-row { grid-template-columns: 1fr; max-height: none; }
}
.gah-about-row__img {
  position: relative;
  overflow: hidden;
  /* No fixed/max height — the grid cell stretches to match the
     text panel; the image scales via object-fit:cover. */
}
.gah-about-row__img a { display: block; height: 100%; }
.gah-about-row__img img {
  width: 100%; height: 100%; display: block;
  object-fit: cover;
  /* Override any inline width/height attributes from WP/EWWW */
  max-width: none !important;
}
@media (max-width: 768px) {
  /* On stacked mobile layout, give the image a sensible default height
     so it doesn't collapse to 0 when there's no sibling forcing height. */
  .gah-about-row__img { aspect-ratio: 16 / 9; }
}
.gah-about-row__text {
  background-color: var(--color-primary);   /* #3C3C3C */
  color: #ffffff;
  padding: 30px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gah-about-row__text h2 {
  font-size: 24px;
  color: #ffffff;
  margin-top: 0;
  margin-bottom: 0.75rem;
}
.gah-about-row__text p { color: #ffffff; }
.gah-about-row__text .gah-btn {
  background: #ffffff;
  color: var(--color-primary) !important;
  border-color: #ffffff;
  align-self: flex-start;
  margin-top: 1rem;
}
.gah-about-row__text .gah-btn:hover {
  background: transparent;
  color: #ffffff !important;
  border-color: #ffffff;
}

/* ----- Auction highlights fallback grid ----------------- */
.gah-highlights {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.5rem;
}
.gah-lot-card {
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
}
.gah-lot-card__img {
  margin: 0 0 0.75rem;
  background: #fafafa;
}
.gah-lot-card__img img {
  width: 100%; height: 220px; object-fit: contain;
}
.gah-lot-card__lotno {
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 0.85rem;
  text-transform: uppercase;
  color: var(--color-text-muted);
  letter-spacing: 0.06em;
  margin-bottom: 0.25rem;
}
.gah-lot-card__title {
  font-family: 'Oswald', Arial, sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.25;
  margin: 0 0 0.4rem;
  color: var(--color-primary);
  min-height: 2.5em;
  letter-spacing: 0.005em;
}
.gah-lot-card__desc {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--color-text-muted);
  /* Match original's `dotdotdot` truncation by clamping to 4 lines */
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 4.5em;
}
.gah-lot-card__price {
  color: #000;
  font-size: 1rem;
  margin-top: auto;
  margin-bottom: 0.5rem;
}
.gah-lot-card__price strong {
  font-weight: 700;
  letter-spacing: 0.02em;
}
.gah-lot-card__more {
  display: inline-block;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: var(--color-primary) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--color-primary);
  padding-bottom: 2px;
}
.gah-lot-card__more:hover { color: #000 !important; border-bottom-color: #000; }

/* ----- Page header banner ------------------------------- */
.gah-page-header {
  background-size: cover;
  background-position: center;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: #ffffff;
  text-align: center;
  margin-bottom: 2.5rem;
}
.gah-page-header::before {
  content: "";
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.5);
}
.gah-page-header h1 {
  position: relative;
  color: #ffffff;
  font-size: 2.6rem;
  letter-spacing: 0.05em;
}

/* ----- Key Facts panel ---------------------------------- */
.gah-key-facts {
  border: 2px solid var(--color-accent);
  background: #fff;
  padding: 1.5rem 2rem;
  margin: 2rem 0;
  max-width: 600px;
}
.gah-key-facts h3 {
  margin-top: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 1rem;
  color: var(--color-accent-dark);
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 0.5rem;
}
.gah-key-facts dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.4rem 1rem;
  margin: 0;
}
.gah-key-facts dt { font-weight: 600; color: var(--color-primary); }
.gah-key-facts dd { margin: 0; color: var(--color-text-muted); }

/* ----- Two-column content ------------------------------- */
.gah-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 800px) {
  .gah-two-col { grid-template-columns: 1fr; }
}

/* ----- Footer — full-width wrapper, centered inner content ----- */
/* The dark grey bg fills the viewport; only the columns are constrained */
#footer-widgets,
.site-footer #footer-widgets {
  background: var(--color-footer-bg) !important;     /* #3C3C3C */
  color: var(--color-footer-text);
  width: 100% !important;
  max-width: none !important;
  padding: 3rem 0 2rem;
}
#footer-widgets .footer-widgets-container {
  background: transparent !important;
  max-width: none !important;          /* span the full viewport */
  width: 100%;
  margin: 0 !important;
  padding: 0 2.5rem !important;
}
@media (max-width: 800px) {
  #footer-widgets .footer-widgets-container { padding: 0 1.25rem !important; }
}
#footer-widgets .inside-footer-widgets {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;   /* 3 equal columns spanning full width */
  gap: 2.5rem;
  align-items: start;
  width: 100%;
}
@media (max-width: 800px) {
  #footer-widgets .inside-footer-widgets {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* Per-column alignment matches the original:
   Quick Links left, Opening Times center, Contact Us right. */
#footer-widgets .footer-widget-1            { text-align: left; }
#footer-widgets .footer-widget-2            { text-align: center; }
#footer-widgets .footer-widget-3            { text-align: right; }
@media (max-width: 800px) {
  #footer-widgets .footer-widget-1,
  #footer-widgets .footer-widget-2,
  #footer-widgets .footer-widget-3 { text-align: left; }
}
/* Headings track the column alignment (center for col 2, right for col 3) */
#footer-widgets .footer-widget-2 .widget-title,
#footer-widgets .footer-widget-2 h3 { border-bottom-color: #555; display: inline-block; }
#footer-widgets .footer-widget-3 .widget-title,
#footer-widgets .footer-widget-3 h3 { border-bottom-color: #555; display: inline-block; }

#footer-widgets a {
  color: var(--color-footer-text);
  text-decoration: none;
}
#footer-widgets a:hover { color: #ffffff; text-decoration: underline; }
#footer-widgets .widget-title,
#footer-widgets h3 {
  color: #ffffff;
  font-family: 'Oswald', Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.95rem;
  font-weight: 500;
  margin: 0 0 1.25rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #555;
}

/* Bottom legal bar — full-width too */
.site-footer .site-info,
.gah-footer-bottom {
  background: var(--color-footer-bottom) !important;
  color: var(--color-footer-text);
  width: 100% !important;
  max-width: none !important;
  font-size: 0.85rem;
}
.site-footer .inside-site-info {
  max-width: 1200px !important;
  width: 100%;
  margin: 0 auto !important;
  padding: 1rem 1.25rem !important;
  background: transparent !important;
}
/* Bottom bar — legal links + copyright on the LEFT, matches original */
.gah-footer-bottom__inner {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
}
.gah-footer-bottom__left {
  order: 2;
  width: 100%;
  font-size: 0.85rem;
}
.gah-footer-bottom__right {
  order: 1;
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.gah-footer-bottom__right a {
  color: var(--color-footer-text);
  text-decoration: none;
  font-size: 0.85rem;
}
.gah-footer-bottom__right a:hover { color: #fff; text-decoration: underline; }
/* Hide the inline " | " separators emitted by the PHP filter — flex gap handles spacing */
.gah-footer-bottom__right > :not(a) { display: none; }
.gah-footer-bottom a { color: var(--color-footer-text); text-decoration: none; }
.gah-footer-bottom a:hover { color: #fff; text-decoration: underline; }

/* ----- Footer columns table layout ---------------------- */
/* Targets both our .gah-footer-* wrappers AND GP's default
   widget_nav_menu / widget_custom_html structure so styling
   works regardless of which classes register_sidebar applied. */
/* Quick Links — 2-col grid (NOT CSS columns) so items don't break across lines */
.gah-footer-quicklinks ul,
#footer-widgets .widget_nav_menu ul {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: max-content max-content;
  column-gap: 2.5rem;
  row-gap: 0.55rem;
  justify-content: start;     /* start-aligned within left column */
}
.gah-footer-quicklinks li,
#footer-widgets .widget_nav_menu li { margin: 0; line-height: 1.4; }

/* Opening hours — flowing inline so times stay on one line per day */
.gah-footer-hours dl,
#footer-widgets .widget_custom_html dl {
  margin: 0;
  display: block;
}
.gah-footer-hours dt,
#footer-widgets .widget_custom_html dt {
  display: inline;
  font-weight: 600;
  color: #ffffff;
}
.gah-footer-hours dt::after,
#footer-widgets .widget_custom_html dt::after { content: " "; }
.gah-footer-hours dd,
#footer-widgets .widget_custom_html dd {
  display: inline;
  margin: 0;
  white-space: nowrap;     /* keep "11:00 – 17:00" on one line */
}
.gah-footer-hours dd::after,
#footer-widgets .widget_custom_html dd::after {
  content: "";
  display: block;
  margin-bottom: 0.4rem;
}

.gah-footer-contact p,
.site-footer .footer-widgets .widget_custom_html p { margin: 0 0 0.5rem; }
.gah-footer-contact strong,
.site-footer .footer-widgets .widget_custom_html strong { color: #ffffff; }



/* ----- Legal page template ------------------------------ */
.gah-legal {
  max-width: 820px;
  margin: 0 auto;
  padding: 3rem 1.25rem;
}
.gah-legal h2 { margin-top: 2.2rem; border-bottom: 1px solid var(--color-border); padding-bottom: 0.4rem; }
.gah-legal h3 { margin-top: 1.6rem; color: var(--color-accent-dark); }
.gah-legal ol li, .gah-legal ul li { margin-bottom: 0.4rem; }
.gah-legal table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
}
.gah-legal th, .gah-legal td {
  border: 1px solid var(--color-border);
  padding: 0.5rem 0.75rem;
  text-align: left;
}

/* ----- Contact page ------------------------------------- */
.gah-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 2.5rem;
}
@media (max-width: 800px) {
  .gah-contact-grid { grid-template-columns: 1fr; }
}
.gah-contact-info {
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 1.5rem;
}
.gah-contact-info p { margin: 0 0 0.5rem; }

/* ----- Contact Form 7 styling --------------------------- */
.wpcf7 form p { margin-bottom: 1rem; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  width: 100%;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--color-border);
  background: #fff;
  font-family: inherit;
  font-size: 1rem;
}
/* Brand primary button. The original rule used `var(--color-accent)` for
   bg and `var(--color-primary)` for text — but both variables resolve to
   `#3C3C3C`, so the text was invisible on the button. */
.wpcf7 input[type="submit"] {
  background: var(--color-primary);
  color: #ffffff;
  border: 2px solid var(--color-primary);
  padding: 0.85em 1.6em;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
}
.wpcf7 input[type="submit"]:hover {
  background: #000000;
  color: #ffffff;
  border-color: #000000;
}

/* ----- Utility ------------------------------------------ */
.screen-reader-text { position: absolute; left: -9999px; }
.gah-text-center { text-align: center; }
.gah-mt-3 { margin-top: 1.5rem; }
.gah-mb-3 { margin-bottom: 1.5rem; }

/* ----- AuctionForge Plugin Overrides -------------------- */
/* Hide AuctionForge's built-in minimal-header on auction archive pages —
   it laid out the title in a flex row that wouldn't centre cleanly across
   viewport widths. Replaced by our custom `.gah-auction-banner` rendered
   via the `bp_before_inner_content_auction_list` action in functions.php.
   `minimal-header-centered` is only emitted by the auction-list template
   (single-auction/single-lot pages use `.minimal-header-thumb` instead),
   so we can target it directly without a body-class scope — handles both
   `/upcoming-auctions/` (body.bp_auction_list) and `/past-auctions/`
   (body.bp_archive_auction_list). */
.bp-header__content-minimal.minimal-header-centered {
  display: none !important;
}

/* Make the auction-archive section span the full viewport width.
   GeneratePress sets `.site-content { display: flex }` for sidebar layouts,
   which on these pages turns the AuctionForge containers into competing
   flex columns. Forcing block layout + full width on `body.bp_auctions`
   pages (covers both upcoming and archive) lets the banner and lot grid
   stretch edge-to-edge as one full-width section. */
body.bp_auctions .site-content {
  display: block !important;
}
body.bp_auctions .site-content > .bp-container,
body.bp_auctions .site-content > .bp-container-fluid {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}
/* GP `.site` grid-container caps width at 1200px — release that for
   auction-archive pages so the section truly fills the viewport. */
body.bp_auctions .site.grid-container,
body.bp_auctions .site-content,
body.bp_auctions #content {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Custom auction-archive banner — full-width grey hero with centred title. */
.gah-auction-banner {
  width: 100%;
  background: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  padding: 36px 20px;
  margin: 0 0 2rem;
  text-align: center;
  box-sizing: border-box;
}
.gah-auction-banner__inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}
.gah-auction-banner__title {
  margin: 0;
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 2.25rem;
  font-weight: 600;
  color: #333;
  letter-spacing: 0.01em;
  text-align: center;
}
@media (max-width: 600px) {
  .gah-auction-banner { padding: 24px 16px; }
  .gah-auction-banner__title { font-size: 1.5rem; }
}

/* Give the lot grid a comfortable inner padding now that the container
   is edge-to-edge. */
body.bp_auctions #auction-list-section {
  padding: 0 20px 2rem;
  box-sizing: border-box;
}

/* Empty-state message ("Next auctions coming soon!" / "Auctions not found").
   The wrapper has `bp-d-flex` which carries `flex-grow: 1`, so it stretches
   the full row width and the inner <p> ends up left-aligned. Re-centre it. */
.bp-row.bp-upcoming-list .bp-padding-text,
.bp-row.bp-archive-list .bp-padding-text,
#auction-list-section .bp-padding-text {
  width: 100% !important;
  justify-content: center !important;
  text-align: center !important;
}
.bp-row.bp-upcoming-list .bp-padding-text p,
.bp-row.bp-archive-list .bp-padding-text p,
#auction-list-section .bp-padding-text p {
  width: 100%;
  text-align: center !important;
  margin: 0 auto !important;
}

/* =========================================================================
   AuctionForge lot-card overrides — added 2026-07-19
   (1) Sold-price badge: swap the plugin's blue for the site's black/white
       button palette. (2) Auction Highlights: 2-row horizontal scroller.
   ========================================================================= */

/* (1) "SOLD FOR" / bid badge — match the black & white button styling
   (replaces the plugin's .bp-bg-blue blue). */
.bp-lot__tool.bp-bg-blue {
  background: var(--color-primary) !important;   /* #3C3C3C */
  color: #ffffff !important;
}
.bp-lot__tool.bp-bg-blue .bp-subtitle,
.bp-lot__tool.bp-bg-blue .bp-price {
  color: #ffffff !important;
}

/* (2) Auction Highlights — two rows, horizontally scrollable, so twice as
   many lots show vs the old single-row slider. */
.gah-highlights-scroll .bt-main__title { display: none !important; }  /* hide plugin "Lot List" heading */
.gah-highlights-scroll .bp-lots.bt-wi-lots {
  display: grid !important;
  grid-auto-flow: column;
  grid-template-rows: repeat(2, auto);
  grid-auto-columns: clamp(160px, 22vw, 210px);
  gap: 26px 20px;
  justify-content: start;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 14px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}
.gah-highlights-scroll .bp-lots.bt-wi-lots .bp-lot {
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
  scroll-snap-align: start;
}

/* (3) Hero: AuctionForge BP Slider (featured lots). Sits in the hero band;
   refine once featured lots are populated and it becomes visible. */

.gah-highlights-scroll { display: block; width: 100%; }

/* ----- Native Hero Slider (wp-admin > Hero Slides; no Elementor) ----- */
.gah-hslider {
  position: relative;
  width: 100%;
  aspect-ratio: 1920 / 550;
  overflow: hidden;
  background: linear-gradient(180deg, #0b1220 0%, #1a2136 100%);
}
.home .gah-hslider {                 /* full-bleed like the static banner */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.gah-hslider__track { position: absolute; inset: 0; }
.gah-hslide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.8s ease;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
}
.gah-hslide.is-active { opacity: 1; z-index: 2; }
.gah-hslide.has-text::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.25) 45%, transparent 72%);
}
.gah-hslide__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 5%;
  color: #ffffff;
}
.gah-hslide__heading {
  font-family: 'Oswald', Arial, sans-serif;
  font-size: clamp(1.5rem, 3.6vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.4rem;
  color: #ffffff;
}
.gah-hslide__sub {
  font-size: clamp(0.95rem, 1.6vw, 1.35rem);
  margin: 0 0 1.1rem;
  color: #f0f0f0;
}
.gah-hslide__btn { margin-top: 0.2rem; }
.gah-hslider__dots {
  position: absolute;
  left: 0; right: 0; bottom: 16px;
  z-index: 5;
  display: flex;
  gap: 8px;
  justify-content: center;
}
.gah-hslider__dot {
  width: 10px; height: 10px;
  padding: 0; border: 0; border-radius: 50%;
  background: rgba(255,255,255,0.45);
  cursor: pointer;
  transition: background 0.2s;
}
.gah-hslider__dot.is-active,
.gah-hslider__dot:hover { background: #ffffff; }
@media (max-width: 600px) {
  .gah-hslider { aspect-ratio: 3 / 2; }
}

/* ----- Auction archive pagination fix -----------------------------
   The top results toolbar (AuctionForge search-field chunk) carries
   bp-lots/bp-tools utility classes, so it wrapped into the lot grid as a
   stray bordered card and pushed lots below it. Force it to a clean,
   full-width, centred bar; also centre the bottom pagination. */
.bp-content__pagination.bp-pagination {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  justify-content: center !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 4px 0 20px !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.bp-content__pagination .nav-links { margin: 0 auto; }
.navigation.pagination { text-align: center; margin: 24px 0; }
.navigation.pagination .nav-links {
  display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: center;
}
.navigation.pagination .page-numbers {
  display: inline-block; padding: 6px 12px; line-height: 1;
}
/* Center the bare page-number rows used on auction lot listings
   (get_the_posts_pagination here outputs .nav-links/.page-numbers, no <nav>). */
.af-catalog-main .nav-links {
  display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; align-items: center;
  width: 100%;
}
.af-catalog-main .nav-links .page-numbers {
  display: inline-block; padding: 6px 12px; line-height: 1;
}
