/* Belpearl Auctions — main site
   Design system mirrors the Belpearl-styled Revolve template used on tahiti.belpearlauctions.com */

:root {
  --gray-a: #edf0f5;              /* page background */
  --gray-b: #dee4eb;              /* alternate section background */
  --navy: #003363;                /* Belpearl navy (nav, footer, dark sections) */
  --navy-tint: rgba(255, 255, 255, 0.1);
  --dark: #272b27;                /* body text / dark section */
  --primary: #97b9d3;             /* light-blue accent */
  --white: #ffffff;
  --white-50: rgba(255, 255, 255, 0.5);
  --border-dark: rgba(0, 0, 0, 0.15);
  --font-body: "Roboto Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --container: 1452px;
  --nav-h: 82px;
  --radius: 6px;
  --shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body {
  margin: 0; background: var(--gray-a); color: var(--dark); overflow-x: clip;
  font-family: var(--font-body); font-size: 18px; line-height: 1.5; letter-spacing: 0.4px;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { margin: 0; font-weight: inherit; }
strong { font-weight: 700; }
em { font-style: italic; }
button { font: inherit; }
ul.list { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 12px; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }

/* Typography */
.h1 { font-family: var(--font-display); font-weight: 500; font-size: 61px; line-height: 1.1; letter-spacing: 0.02em; text-transform: uppercase; }
.h2 { font-family: var(--font-display); font-weight: 500; font-size: 51px; line-height: 1.15; letter-spacing: -0.01em; text-transform: uppercase; }
.h3 { font-size: 34px; line-height: 1.3; letter-spacing: -0.01em; font-weight: 400; }
.h4 { font-size: 26px; line-height: 1.4; font-weight: 400; }
.large-text { font-size: 22px; line-height: 1.4; }
.small-text { font-size: 13px; line-height: 1.4; }
.uppercase-text { font-size: 13px; line-height: 1.4; letter-spacing: 0.03em; text-transform: uppercase; font-weight: 500; text-decoration: none; }
.muted { opacity: 0.5; }
.muted-70 { opacity: 0.7; }
.text-white { color: #fff; }
.text-center { text-align: center; }
.quote-text { font-family: var(--font-body); font-weight: 400; font-size: 51px; line-height: 1.15; letter-spacing: -0.01em; text-transform: none; }

/* Layout */
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.container-xl { width: 100%; max-width: 1167px; }
.container-l { width: 100%; max-width: 930px; }
.container-m { width: 100%; max-width: 630px; }
.container-s { width: 100%; max-width: 456px; }
.container-xs { width: 100%; max-width: 460px; }
.align-center { margin-left: auto; margin-right: auto; }
.section { padding: 100px 0; }
.section.bg-b { background: var(--gray-b); }
.section.bg-navy { background: var(--navy); color: #fff; }
.section.bg-dark { background: var(--dark); color: #fff; }
.section.pb-xl { padding-bottom: 144px; }
.section.pt-page { padding-top: 72px; }
.section.text-header { padding-top: 144px; padding-bottom: 24px; }
.section.text-header.compact { padding-top: 96px; padding-bottom: 100px; }
.section.title-only { padding-top: 96px; padding-bottom: 0; }
.section.article-section { padding-top: 72px; padding-bottom: 144px; }
.section-with-title { display: flex; flex-direction: column; gap: 96px; }
.stack-xl { display: flex; flex-direction: column; gap: 96px; }
.stack-l { display: flex; flex-direction: column; gap: 48px; }
.stack-m { display: flex; flex-direction: column; gap: 40px; }
.stack-s { display: flex; flex-direction: column; gap: 18px; }
.stack-xs { display: flex; flex-direction: column; gap: 6px; }
.grid-halves { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.grid-halves.center { align-items: center; }
.title-wrapper { display: flex; flex-direction: column; gap: 72px; align-items: flex-start; }
.hr { height: 1px; width: 100%; background: var(--border-dark); }
.hr.white { background: #fff; opacity: 0.1; }

/* Buttons */
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  padding: 9px 24px; border: 1px solid var(--dark); border-radius: 200px;
  background: transparent; color: var(--dark); text-decoration: none; cursor: pointer;
  font: inherit; line-height: 1.5; letter-spacing: 0.4px; white-space: nowrap;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s;
}
.button:hover { background: var(--dark); color: #fff; }
.button.white { border-color: #fff; color: #fff; }
.button.white:hover { background: #fff; color: var(--dark); }
.button.solid { background: var(--navy); border-color: var(--navy); color: #fff; }
.button.solid:hover { background: var(--dark); border-color: var(--dark); }
.button svg { width: 20px; height: 20px; flex: none; transition: transform 0.2s; }
.button:hover .arrow-down { transform: translateY(3px); }
.button:hover .arrow-right { transform: translateX(3px); }
.button:hover .arrow-out { transform: translate(2px, -2px); }
.button[disabled] { opacity: 0.6; cursor: wait; }
.button-row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.text-link { text-decoration: underline; text-underline-offset: 3px; }
.arrow-link { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; transition: opacity 0.2s; }
.arrow-link:hover { opacity: 0.7; }
.arrow-link svg { width: 20px; height: 20px; }

/* Navbar */
.navbar-wrapper { position: sticky; top: 0; z-index: 99; background: var(--navy); padding: 9px; }
.navbar { background: var(--navy); border-radius: 9px; padding: 0 18px; }
.navbar-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 64px; }
.brand { display: flex; align-items: center; flex: none; }
.nav-logo { height: 48px; width: auto; }
.nav-menu { flex: 1; display: flex; justify-content: center; }
.nav-links { display: flex; align-items: center; justify-content: center; gap: 18px; }
.nav-link {
  color: var(--white-50); text-transform: uppercase; text-decoration: none; padding: 3px 9px;
  font-size: 13px; letter-spacing: 0.03em; font-weight: 500; line-height: 1.4; transition: color 0.2s; white-space: nowrap;
}
.nav-link:hover, .nav-link.active { color: #fff; }
.nav-menu-head, .nav-menu-cta { display: none; }
.navbar-right { display: flex; align-items: center; gap: 24px; flex: none; }
/* Language switch (EN · 中文 · 日本語) */
.lang-switch { display: flex; align-items: center; gap: 6px; font-size: 13px; line-height: 1.4; font-weight: 500; white-space: nowrap; }
.lang-link { color: var(--white-50); text-decoration: none; padding: 3px 2px; transition: color 0.2s; letter-spacing: 0.03em; }
.lang-link:hover, .lang-link.active { color: #fff; }
.lang-link.active { text-decoration: underline; text-underline-offset: 5px; text-decoration-color: var(--primary); }
.lang-sep { color: var(--white-50); }
.nav-menu-cta .lang-switch { font-size: 18px; gap: 10px; margin-bottom: 12px; }

/* Chinese and Japanese: the Roboto files only cover Latin letters, so CJK characters fall through to the
   reader's own system fonts (nothing extra is downloaded). Letter spacing made for English is removed. */
:lang(zh) { --font-body: "Roboto Condensed", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif; --font-display: "Roboto", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif; }
:lang(ja) { --font-body: "Roboto Condensed", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Meiryo", "Noto Sans JP", sans-serif; --font-display: "Roboto", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Meiryo", "Noto Sans JP", sans-serif; }
html:lang(zh) body, html:lang(ja) body { letter-spacing: 0; line-height: 1.75; }
html:lang(zh) .h1, html:lang(ja) .h1, html:lang(zh) .h2, html:lang(ja) .h2 { letter-spacing: 0.02em; line-height: 1.3; }
html:lang(ja) body { line-break: strict; }
html:lang(zh) .h1, html:lang(ja) .h1 { font-size: 52px; }
.menu-button { display: none; width: 36px; height: 48px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.menu-button span { display: block; position: absolute; left: 0; width: 100%; height: 2px; background: #fff; transition: transform 0.25s, opacity 0.25s; }
.menu-button span:nth-child(1) { top: 16px; }
.menu-button span:nth-child(2) { top: 23px; }
.menu-button span:nth-child(3) { top: 30px; }
body.nav-open .menu-button span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.nav-open .menu-button span:nth-child(2) { opacity: 0; }
body.nav-open .menu-button span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Heroes (image-bg-header variants) */
.hero {
  position: relative; z-index: 1; display: flex; flex-direction: column; overflow: hidden;
  min-height: 100vh; min-height: 100svh; margin-top: calc(-1 * var(--nav-h)); padding: calc(var(--nav-h) + 24px) 0 40px;
  background: var(--dark); color: #fff;
}
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.8; }
.hero-overlay { position: absolute; inset: 0; background: rgba(0, 51, 99, 0.42); }
.hero-scrim { position: absolute; left: 0; bottom: 0; width: 100%; height: 50%; background: linear-gradient(transparent, #000); opacity: 0.3; }
.hero-container { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; }
.hero-body { flex: 1; display: flex; align-items: center; align-self: stretch; }
.hero-title-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; width: 100%; }
.hero-title-row .h1 { max-width: 880px; }
.hero-cta { display: flex; gap: 24px; flex-wrap: wrap; }
/* Home hero: copy block (title, text, buttons) + next-auction card, three layout variants */
.hero-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; flex: 1 1 630px; max-width: 720px; min-width: 0; }
.hero-copy .h1 { font-size: 56px; }
.hero-copy .large-text { max-width: 560px; }
.hero-copy .hero-cta { margin-top: 8px; }
.hero.v-split .hero-container, .hero.v-stack .hero-container { flex-direction: row; justify-content: space-between; gap: 48px 64px; flex-wrap: wrap; }
.hero.v-split .hero-container { align-items: center; }          /* A: card centred beside the copy */
.hero.v-stack .hero-container { align-items: flex-end; }        /* B: copy and card share the bottom line */
.hero.v-center .hero-container { flex-direction: column; align-items: center; justify-content: center; gap: 56px; text-align: center; }
.hero.v-center .hero-copy { align-items: center; max-width: 820px; flex: none; }
.hero.v-center .hero-copy .large-text { max-width: 640px; }
.hero.v-center .hero-cta { justify-content: center; }
.hero.v-center .hero-auction { flex: none; width: 100%; }
.hero-auction { flex: 1 1 520px; max-width: 600px; animation: fadeUp 0.6s ease both; }
.hero-auction .auction-card { box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25); }
.coming-soon.small { padding: 5px 14px; font-size: 14px; }
/* align-bottom variant: photo with title at the bottom */
.hero.align-bottom { height: clamp(520px, 41.7vw, 720px); min-height: 0; justify-content: flex-end; padding-bottom: 48px; }
.hero.align-bottom .hero-media { opacity: 0.7; }
.hero.align-bottom .hero-container { flex: none; }
.about-header-contents { display: flex; flex-direction: column; gap: 36px; align-items: flex-start; max-width: 930px; }
/* no-image variant: navy, centred contents */
.hero.no-image { height: auto; min-height: 0; background: var(--navy); padding-top: 154px; padding-bottom: 144px; }
/* split-photo variant: copy left, rounded photo right */
.hero.no-image.split-photo { padding-top: 120px; padding-bottom: 110px; }
.hero-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.hero-split .hero-copy { max-width: 600px; gap: 24px; }
.hero-split .hero-copy .large-text { max-width: 540px; }
.hero-split .hero-copy .button-row { margin-top: 12px; }
.hero-split-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); display: block; box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25); }
.hero-cta-wrapper { display: flex; flex-direction: column; align-items: center; gap: 48px; text-align: center; width: 100%; }
.hero-cta-text { display: flex; flex-direction: column; align-items: center; gap: 24px; }

/* Load-in + reveal animations */
.load-in-1, .load-in-2, .load-in-3 { animation: fadeUp 0.8s ease both; }
.load-in-2 { animation-delay: 0.2s; }
.load-in-3 { animation-delay: 0.4s; }
@keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }
.reveal { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.in { opacity: 1; transform: none; }
html.no-js .reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal, .load-in-1, .load-in-2, .load-in-3 { opacity: 1; transform: none; transition: none; animation: none; }
  html { scroll-behavior: auto; }
}

/* Images */
.image-cover { width: 100%; height: 100%; object-fit: cover; }
.image-square { position: relative; width: 100%; padding-bottom: 100%; overflow: hidden; }
.image-square img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.image-3x2 { position: relative; width: 100%; padding-bottom: 66.66%; overflow: hidden; }
.image-3x2 img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.about-image { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.image-vertical { width: 300px; position: relative; padding-bottom: 140%; max-width: 100%; }
.image-vertical img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.portrait-image { width: 100%; max-width: 456px; aspect-ratio: 3 / 4; object-fit: cover; }

/* About block (template "about-grid") */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; }
.about-text-wrapper { display: flex; flex-direction: column; gap: 72px; }
.values-list { display: flex; flex-direction: column; gap: 18px; }
.values-list-item { border-top: 1px solid var(--border-dark); padding-top: 18px; display: grid; grid-template-columns: 0.5fr 1fr; gap: 24px; align-items: start; }
.values-list-item .num { font-family: var(--font-display); font-weight: 500; color: var(--navy); }
/* About collage: one wide photo over two small ones, stretched to the text column's height */
.about-collage { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px; min-height: 0; }
.about-collage img { width: 100%; height: 100%; min-height: 0; object-fit: cover; border-radius: var(--radius); display: block; }
.about-collage .wide { grid-column: 1 / -1; }

/* Traceability diagram */
.chain { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.chain-node { border: 1px solid var(--dark); border-radius: 200px; padding: 12px 28px; font-size: 22px; line-height: 1.3; }
.chain-node.center { background: var(--navy); border-color: var(--navy); color: #fff; font-family: var(--font-display); font-weight: 500; text-transform: uppercase; letter-spacing: 0.02em; }
.chain-arrow { width: 28px; height: 28px; opacity: 0.6; flex: none; }

/* Icon / numbered list rows (template "icon-list-icon") */
.icon-list { display: flex; flex-direction: column; gap: 24px; }
.icon-list-item { border-top: 1px solid var(--border-dark); padding-top: 24px; display: grid; grid-template-columns: minmax(auto, 124px) 1fr minmax(200px, 456px); gap: 24px; align-items: start; }
.icon-list-item .num { font-family: var(--font-display); font-weight: 500; font-size: 26px; color: var(--navy); line-height: 1.4; }
.number-circle { width: 60px; height: 60px; border-radius: 60px; background: var(--gray-b); display: flex; align-items: center; justify-content: center; flex: none; }
.section.bg-b .number-circle { background: rgba(0, 51, 99, 0.1); }
.section.bg-navy .number-circle, .section.bg-dark .number-circle { background: rgba(255, 255, 255, 0.12); }

/* Values grid (01 / 02 / 03) */
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.value-item { border-top: 1px solid var(--border-dark); padding-top: 24px; display: flex; flex-direction: column; gap: 18px; }
.value-num { font-family: var(--font-display); font-weight: 500; font-size: 26px; color: var(--navy); }

/* Cards (white on light backgrounds) */
.card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 36px; display: flex; flex-direction: column; gap: 24px; color: var(--dark); }
.card-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.card .icon-circle { background: rgba(0, 51, 99, 0.1); color: var(--navy); }

/* Auction groups (Current / Upcoming) */
.auction-groups { display: flex; flex-direction: column; gap: 48px; }
.auction-group { display: flex; flex-direction: column; gap: 20px; }
.auction-group-title { font-size: 29px; line-height: 1.3; letter-spacing: -0.01em; font-weight: 400; display: flex; align-items: center; gap: 14px; }
.auction-group-title::after { content: ""; flex: 1; height: 1px; background: var(--border-dark); }
.auction-group-head { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.auction-group-head .auction-group-title { flex: 1; min-width: 200px; }
.auction-group-head .cms-categories { justify-content: flex-end; gap: 28px; }

/* Bidding overview on the auctions page: header row + icon steps with a photo (same pattern as the Bidding page) */
.bidding-overview { display: flex; flex-direction: column; gap: 40px; padding: 8px 0 56px; }
/* Auction cards — two per row, two columns inside */
.auction-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.auction-card {
  background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 32px 36px;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); grid-template-rows: auto auto 1fr auto; grid-template-areas: "head head" "name name" "when desc" "foot foot";
  gap: 16px 40px; color: var(--dark); min-height: 340px;
}
.auction-foot { align-self: end; }
.auction-meta strong.soon { font-weight: 400; opacity: 0.7; }
.coming-soon { display: inline-flex; align-items: center; padding: 8px 20px; border: 1px dashed rgba(39, 43, 39, 0.35); border-radius: 200px; font-size: 16px; opacity: 0.65; white-space: nowrap; }
.auction-card-head { grid-area: head; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.auction-location { font-size: 14px; opacity: 0.6; }
.status-pill {
  display: inline-flex; align-items: center; height: 26px; padding: 2px 14px; border-radius: 999px;
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; background: var(--dark); color: #fff; white-space: nowrap;
}
.status-pill.open { background: #2f7d4f; }
.status-pill.upcoming { background: var(--navy); }
.status-pill.closed, .status-pill.bidding-closed { background: #a15c07; }   /* Pending results: amber */
.status-pill.private-results { background: #6b4c9a; }                        /* Private results: purple */
.status-pill.results-published { background: #1f6f8b; }                      /* Results published: teal */
.auction-name { grid-area: name; font-family: var(--font-display); font-weight: 500; font-size: 26px; line-height: 1.2; letter-spacing: -0.01em; }
.auction-when { grid-area: when; display: flex; flex-direction: column; gap: 16px; }
.auction-date { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; padding-bottom: 8px; border-bottom: 1px solid var(--border-dark); }
.auction-date .day { font-size: 52px; line-height: 1; font-weight: 300; letter-spacing: -0.02em; }
.auction-date .month { font-family: var(--font-display); font-weight: 500; font-size: 15px; text-transform: uppercase; letter-spacing: 0.04em; }
.auction-facts { display: grid; grid-template-columns: auto 1fr; gap: 8px 18px; margin: 0; font-size: 16px; line-height: 1.4; }
.auction-facts dt { opacity: 0.55; text-transform: uppercase; font-size: 12px; letter-spacing: 0.05em; font-weight: 500; align-self: center; }
.auction-facts dd { margin: 0; font-weight: 500; }
.auction-desc-col { grid-area: desc; display: flex; flex-direction: column; gap: 12px; padding-top: 6px; }
.auction-desc { font-size: 16px; line-height: 1.55; margin: 0; }
.auction-notes { font-size: 14px; line-height: 1.45; margin: 0; opacity: 0.65; }
.auction-foot { grid-area: foot; display: flex; justify-content: space-between; align-items: center; gap: 16px 24px; flex-wrap: wrap; border-top: 1px solid var(--border-dark); padding-top: 16px; margin-top: 6px; }
.card-buttons .button { font-size: 16px; padding: 8px 20px; }
.auction-meta { display: flex; gap: 24px; flex-wrap: wrap; }
.auction-meta div { display: flex; flex-direction: column; gap: 2px; }
.auction-meta .label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500; opacity: 0.55; }
.auction-meta strong { font-size: 16px; font-weight: 500; line-height: 1.3; }
.auction-card .card-buttons { gap: 10px; }
.auction-card .button { padding: 8px 20px; font-size: 16px; }
.auction-empty { background: #fff; border-radius: var(--radius); padding: 36px; box-shadow: var(--shadow); }
/* Past auction rows — white cards, one per row, same language as the previews */
.auction-rows { display: flex; flex-direction: column; gap: 24px; }
.auction-row {
  background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 40px 44px;
  display: grid; grid-template-columns: 180px minmax(0, 2fr) minmax(0, 1.1fr) 230px; gap: 20px 40px; align-items: center; color: var(--dark);
}
.auction-row .when { display: flex; flex-direction: column; gap: 4px; }
.auction-row .when .day { font-size: 56px; line-height: 1; font-weight: 300; letter-spacing: -0.02em; }
.auction-row .when .month { font-family: var(--font-display); font-weight: 500; font-size: 16px; text-transform: uppercase; letter-spacing: 0.04em; }
.auction-row .row-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.auction-row .row-name { font-family: var(--font-display); font-weight: 500; font-size: 28px; line-height: 1.25; letter-spacing: -0.01em; }
.auction-row .row-desc { font-size: 17px; line-height: 1.5; margin: 0; opacity: 0.8; }
.auction-row .auction-meta { gap: 24px; }
.auction-row .auction-meta strong { font-size: 20px; }
/* Fixed-width button column (fits "Press release (PDF)"), buttons stacked: rows stay aligned whether a sale has one PDF or three */
.auction-row .links { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.auction-row .links .button { font-size: 16px; padding: 8px 20px; }

/* Service boxes (on navy) */
.tour-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tour-feature-box { background: var(--navy-tint); padding: 24px; display: flex; flex-direction: column; gap: 72px; }
.tour-feature-text { flex: 1; }
.icon-circle { width: 96px; height: 96px; border-radius: 50%; background: var(--primary); display: flex; align-items: center; justify-content: center; color: var(--navy); flex: none; }
.icon-circle svg { width: 44px; height: 44px; }
.icon-circle.small { width: 60px; height: 60px; }
.icon-circle.small svg { width: 28px; height: 28px; }
.wide-feature-box { background: var(--navy-tint); padding: 36px; display: flex; justify-content: space-between; gap: 48px; }
.wide-feature-box .content { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 40px; max-width: 520px; }
.widget-with-image { position: relative; background: var(--dark); display: flex; align-items: center; justify-content: center; max-width: 50%; overflow: hidden; }
.widget-with-image img { opacity: 0.7; width: 100%; height: 100%; object-fit: cover; }
.bullet-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.bullet-list li { display: flex; gap: 12px; align-items: flex-start; }
.bullet-list li::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--primary); margin-top: 10px; }
.bullet-list.dark li::before { background: var(--navy); }

/* Icon features (template "icon-feature-section") */
.icon-feature-section { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; align-items: start; }
.icon-features-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px 48px; flex: 1; }
.small-feature { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.small-feature a { text-decoration: none; }
.small-feature a:hover { text-decoration: underline; }
.icon-features-section-image { max-width: 314px; justify-self: end; }
.icon-features-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }

/* Large quote */
.large-quote-section { display: flex; flex-direction: column; gap: 144px; max-width: 930px; }
.large-quote-author { display: flex; gap: 36px; align-items: center; }

/* Process */
.text-features-section { display: grid; grid-template-columns: 1fr 2fr; gap: 18px; align-items: start; }
.features-image-and-button { position: sticky; top: 140px; display: flex; flex-direction: column; gap: 40px; align-items: flex-start; }
.features-list { display: flex; flex-direction: column; gap: 24px; }
.features-list-item { border-top: 1px solid var(--border-dark); padding-top: 24px; display: grid; grid-template-columns: auto 1fr 1fr; gap: 24px; align-items: center; }

/* Tabs (template "tabs" on dark) */
.tabs { display: flex; flex-direction: column; gap: 56px; }
.tabs-menu { display: flex; gap: 9px; }
.tab-link { flex: 1; text-align: center; padding: 18px 12px; border: 1px solid rgba(255, 255, 255, 0.1); background: transparent; color: #fff; cursor: pointer; transition: background-color 0.2s, border-color 0.2s; }
.tab-link:hover { background: rgba(255, 255, 255, 0.05); border-color: transparent; }
.tab-link.active { background: rgba(255, 255, 255, 0.1); border-color: transparent; }
.tab-pane { display: none; }
.tab-pane.active { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; animation: fadeUp 0.5s ease both; }
/* Venue: fixed three-photo collage, tabs switch the text only */
.venue-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.venue-collage { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 216px 216px; gap: 12px; }
.venue-collage img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); display: block; }
.venue-collage .tall { grid-row: 1 / span 2; }
.venue-panes { min-height: 280px; display: flex; flex-direction: column; justify-content: center; }

/* Accordion / FAQ */
.faq-section { display: flex; flex-direction: column; gap: 60px; }
.accordion-items-wrapper { border-bottom: 1px solid var(--border-dark); }
.accordion-item { border-top: 1px solid var(--border-dark); padding: 24px 0; }
.accordion-title { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 18px; cursor: pointer; background: none; border: 0; padding: 0; text-align: left; color: inherit; font: inherit; transition: opacity 0.2s; }
.accordion-title:hover { opacity: 0.6; }
.accordion-title svg { width: 24px; height: 24px; flex: none; transition: transform 0.25s; }
.accordion-item.open .accordion-title svg { transform: rotate(180deg); }
.accordion-content { display: none; padding-top: 24px; max-width: 693px; }
.accordion-item.open .accordion-content { display: block; animation: fadeUp 0.35s ease both; }
.faq-cta { display: flex; flex-direction: column; gap: 36px; align-items: flex-start; max-width: 456px; }

/* Category filters (template "cms-categories") */
.cms-categories-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; border-bottom: 1px solid var(--border-dark); padding-bottom: 24px; align-items: end; }
.cms-categories-wrapper.no-line { border-bottom: 0; padding-bottom: 0; }
.cms-categories { display: flex; gap: 36px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.category-link { display: inline-flex; gap: 9px; align-items: center; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; color: inherit; opacity: 0.6; transition: opacity 0.2s; }
.category-link:hover, .category-link.active { opacity: 1; }
.indicator-circle { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); opacity: 0; transition: opacity 0.2s; }
.category-link.active .indicator-circle { opacity: 1; }
[data-filter-item].hidden { display: none; }

/* Blog / article grids */
.blog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px 18px; }
.post-grid-item { display: flex; flex-direction: column; gap: 18px; }
.post-link { display: block; background: var(--dark); overflow: hidden; border-radius: var(--radius); }
.post-link img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: top; transition: transform 0.3s, opacity 0.3s; }
.post-link:hover img { transform: scale(1.04); opacity: 0.85; }
.post-meta { display: flex; gap: 18px; align-items: center; }
.post-meta-divider { width: 1px; height: 1em; background: var(--dark); opacity: 0.5; }
.post-title-link { text-decoration: none; }
.post-title-link:hover { opacity: 0.7; }
.cms-featured-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; align-items: start; }
.customer-story { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.customer-link { display: block; background: var(--dark); overflow: hidden; border-radius: var(--radius); }
.customer-link img { width: 100%; object-fit: cover; object-position: top; transition: transform 0.3s, opacity 0.3s; }
.cms-featured-grid > :first-child .customer-link img { aspect-ratio: 3 / 2; }
.cms-featured-grid > :last-child .customer-link img { aspect-ratio: 4 / 3; }
.customer-link:hover img { transform: scale(1.04); opacity: 0.85; }

/* CTA band (template "cta-section") */
.cta-section { background: var(--primary); color: var(--dark); text-align: center; padding: 96px 0; }
.cta-wrapper { display: flex; flex-direction: column; align-items: center; gap: 48px; }
.cta-section .button { border-color: var(--dark); }

/* Media logos */
.logo-row { display: flex; gap: 32px 64px; align-items: center; flex-wrap: wrap; }
.logo-row img { height: 64px; width: auto; }
.logo-row .logo-text { font-family: var(--font-display); font-weight: 500; font-size: 30px; letter-spacing: 0.02em; color: var(--navy); line-height: 1; }
/* Media articles: white preview cards, three per row */
.article-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.article-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.25s, box-shadow 0.25s; }
.article-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12); }
.article-card .thumb { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gray-b); }
.article-card .thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 0.4s; display: block; }
.article-card:hover .thumb img { transform: scale(1.03); }
.article-card .body { padding: 22px 24px 22px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.article-card .meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.article-card .source { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 4px; background: rgba(0, 51, 99, 0.08); color: var(--navy); font-family: var(--font-display); font-weight: 500; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }
.article-card .date { font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; font-weight: 500; opacity: 0.55; }
.article-card .title { font-family: var(--font-display); font-weight: 500; font-size: 19px; line-height: 1.35; text-decoration: none; color: inherit; }
.article-card .title:hover { color: var(--navy); }
.article-card .foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--border-dark); }
.article-card .foot .arrow-link { font-size: 14px; }
.article-card .foot .arrow-link svg { width: 16px; height: 16px; }
.media-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.media-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); text-decoration: none; display: flex; flex-direction: column; }
.media-card .thumb { position: relative; width: 100%; padding-bottom: 125%; overflow: hidden; background: #fff; }
.media-card .thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 0.3s; }
.media-card:hover .thumb img { transform: scale(1.03); }
.media-card .caption { padding: 18px 24px; display: flex; flex-direction: column; gap: 4px; }

/* Video facade */
.video-facade { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--dark); border-radius: var(--radius); overflow: hidden; cursor: pointer; border: 0; padding: 0; display: block; }
.video-facade img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.75; transition: opacity 0.3s, transform 0.5s; }
.video-facade:hover img { opacity: 0.9; transform: scale(1.02); }
.video-facade .play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 96px; height: 96px; border-radius: 50%; background: var(--primary); color: var(--navy); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); }
.video-facade .play svg { width: 36px; height: 36px; margin-left: 4px; }
.video-facade .label { position: absolute; left: 24px; bottom: 24px; color: #fff; display: flex; flex-direction: column; gap: 4px; text-align: left; }
.video-facade iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Quarterly index — white cards, same language as the auction cards */
.index-period { display: flex; flex-direction: column; gap: 24px; }
.index-groups { display: flex; flex-direction: column; gap: 18px; }
.index-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px 32px; display: flex; flex-direction: column; gap: 18px; }
.index-card-title { font-family: var(--font-display); font-weight: 500; font-size: 22px; line-height: 1.3; letter-spacing: -0.01em; }
.index-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.index-table { width: 100%; border-collapse: collapse; min-width: 420px; }
.index-table th { text-align: center; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500; opacity: 0.55; padding: 8px 12px 12px; border-bottom: 1px solid var(--border-dark); }
.index-table th:first-child { text-align: left; }
.index-table td { padding: 18px 12px; border-bottom: 1px solid rgba(0, 0, 0, 0.08); text-align: center; font-size: 22px; font-weight: 500; font-variant-numeric: tabular-nums; }
.index-table tr:last-child td { border-bottom: 0; }
.index-table td.shape { text-align: left; width: 140px; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--navy); }
.index-table td.val.empty { opacity: 0.35; }
.index-adjust .auction-facts { font-size: 18px; }
.index-adjust dd.empty { opacity: 0.35; }

/* Venue stats */
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.stat { border-top: 1px solid var(--border-dark); padding-top: 24px; display: flex; flex-direction: column; gap: 12px; }
.auction-hero-intro { max-width: 640px; opacity: 0.92; }
.section.bg-navy .stat, .section.bg-dark .stat { border-top-color: rgba(255, 255, 255, 0.2); }
.venue-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }

/* Partners */
.partner-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.partner-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.partner-card .body { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.partner-card .country { color: var(--navy); }
.map-wrap { max-width: 1100px; margin: 0 auto; width: 100%; }
.map-wrap img { width: 100%; mix-blend-mode: multiply; }

/* Grading */
.grading-row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: center; border-top: 1px solid var(--border-dark); padding-top: 48px; }
.grading-row .chart { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; background: #fff; border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); }
.grading-row .chart img { width: 100%; }
.grading-copy { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.code-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.code-item { background: #fff; border-radius: var(--radius); padding: 18px 24px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 4px; }

/* Contact (template contact layout) */
.contact-section { display: flex; flex-direction: column; gap: 96px; }
.contact-details-section { display: flex; justify-content: space-between; gap: 48px; align-items: flex-start; }
.contact-list { display: flex; flex-direction: column; gap: 60px; }
.contact-method { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.contact-method a { text-decoration: none; }
.contact-method a:hover { text-decoration: underline; }
.contact-image { width: 100%; max-width: 456px; flex: none; }
.contact-image img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.contact-layout { display: flex; gap: 96px; align-items: center; }
.contact-image-square { width: 300px; flex: none; }

/* Forms */
.form-section { display: flex; flex-direction: column; gap: 96px; }
.request-section { display: flex; flex-direction: column; gap: 96px; }
.form { display: flex; flex-direction: column; gap: 30px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.field { display: flex; flex-direction: column; }
.field label { color: rgba(39, 43, 39, 0.6); font-size: 16px; margin-bottom: 5px; }
.form-input {
  width: 100%; height: 50px; border: 1px solid var(--border-dark); background: #fff; color: #000;
  font: inherit; font-size: 16px; padding: 0 12px; border-radius: 0; letter-spacing: 0.2px;
}
.form-input:focus { outline: none; border-color: var(--dark); }
textarea.form-input { height: auto; min-height: 150px; padding: 12px; resize: vertical; }
select.form-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23272b27' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { display: none; padding: 18px 24px; border-radius: var(--radius); }
.form-status.ok { display: block; background: #e7f0e7; color: #1f4d2b; }
.form-status.err { display: block; background: #ffdede; color: #7a1f1f; }

/* Article (legal) */
.post-section { display: flex; flex-direction: column; gap: 72px; }
.post-grid { display: grid; grid-template-columns: 0.5fr 1fr; gap: 48px; }
.post-grid.title { align-items: end; }
.article { display: flex; flex-direction: column; gap: 24px; max-width: 693px; }
.article h3 { font-size: 26px; line-height: 1.4; margin-top: 12px; }
.article ul, .article ol { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 8px; }
.article blockquote { margin: 12px 0; padding: 0; font-size: 26px; line-height: 1.4; }

/* Utility (404) */
.utility { min-height: 60vh; display: flex; align-items: center; }

/* Admin (/admin) */
.admin-body { background: var(--gray-a); }
.admin-flags { display: flex; flex-direction: column; gap: 6px; }
.admin-flags .admin-help { margin: 0 0 10px 30px; }
.admin-bar { background: var(--navy); color: #fff; display: flex; align-items: center; gap: 24px; padding: 12px 24px; position: sticky; top: 0; z-index: 50; }
.admin-bar-title { flex: 1; font-family: var(--font-display); font-weight: 500; font-size: 15px; letter-spacing: 0.04em; text-transform: uppercase; }
.admin-user { display: flex; align-items: center; gap: 18px; font-size: 15px; }
.admin-link { color: #fff; text-decoration: none; opacity: 0.8; }
.admin-link:hover { opacity: 1; text-decoration: underline; }
.admin { min-height: 100vh; display: flex; flex-direction: column; }
.admin-main { padding: 0 24px; display: flex; flex-direction: column; gap: 24px; }
#listView, #editView { padding: 36px 0 96px; }
/* Login: photo panel + centred card */
.admin-login { flex: 1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.admin-login-media { position: relative; background: var(--navy); color: #fff; overflow: hidden; display: flex; align-items: flex-end; padding: 56px; }
.admin-login-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.admin-login-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 51, 99, 0.1) 30%, rgba(0, 51, 99, 0.85)); }
.admin-login-copy { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 14px; max-width: 520px; }
.admin-login-copy .uppercase-text { opacity: 0.8; }
.admin-login-copy .large-text { opacity: 0.9; }
.admin-login-panel { display: flex; align-items: center; justify-content: center; padding: 48px 24px; }
.admin-login-card { width: 100%; max-width: 440px; background: #fff; border-radius: var(--radius); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08); padding: 44px; display: flex; flex-direction: column; gap: 18px; }
.admin-login-logo { height: 34px; width: auto; align-self: flex-start; margin-bottom: 6px; }
.admin-login-card .button { justify-content: center; margin-top: 6px; }
.admin-login-back { font-size: 14px; opacity: 0.6; text-decoration: none; color: inherit; align-self: flex-start; }
.admin-login-back:hover { opacity: 1; text-decoration: underline; }
.admin-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 36px; max-width: 480px; display: flex; flex-direction: column; gap: 18px; }
.admin-subscribers { margin-top: 28px; }
.admin-toolbar { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.admin-table-wrap { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.admin-table th, .admin-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--border-dark); vertical-align: middle; }
.admin-table th { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.6; font-weight: 500; white-space: nowrap; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-table .name { font-size: 17px; font-weight: 500; }
.admin-table .dim, .dim { opacity: 0.6; font-size: 13px; }
.admin-form { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 36px; display: flex; flex-direction: column; gap: 24px; }
.admin-form .form-row { gap: 24px; }
.admin-form .form-row.cols-4 { grid-template-columns: repeat(4, 1fr); }
.admin-form .form-row.cols-3 { grid-template-columns: repeat(3, 1fr); }
.admin-form textarea.form-input { min-height: 90px; }
.admin-file { display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--border-dark); padding: 14px; border-radius: var(--radius); flex: 1; }
.admin-file .current { font-size: 14px; }
.admin-file input[type=file] { font-size: 14px; }
.admin-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.admin-spacer { flex: 1; }
.admin-check { display: flex; align-items: center; gap: 10px; font-size: 16px; cursor: pointer; }
.admin-check input { width: 18px; height: 18px; }
.admin-help { font-size: 13px; opacity: 0.65; line-height: 1.45; }
.button.danger { border-color: #b23a3a; color: #b23a3a; }
.button.danger:hover { background: #b23a3a; color: #fff; }
.button.small { padding: 5px 14px; font-size: 14px; }
@media (max-width: 767px) {
  .admin-form .form-row.cols-4, .admin-form .form-row.cols-3 { grid-template-columns: 1fr; }
  .admin-bar { flex-wrap: wrap; }
  .admin-login { grid-template-columns: 1fr; }
  .admin-login-media { min-height: 280px; padding: 32px 24px; }
  .admin-login-media .h2 { font-size: 32px; }
  .admin-login-panel { padding: 32px 18px 48px; }
  .admin-login-card { padding: 32px 24px; }
  .admin-bar-title { flex-basis: 100%; order: 3; }
}

/* Footer */
.footer { background: var(--navy); color: #fff; padding: 72px 0 48px; }
.footer-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.footer-left { display: flex; flex-direction: column; gap: 36px; align-items: flex-start; justify-content: space-between; }
.footer-logo { height: 48px; width: auto; }
.footer-address { display: flex; flex-direction: column; gap: 24px; }
.footer-contact-links { display: flex; flex-direction: column; align-items: flex-start; }
.footer-right { display: flex; flex-direction: column; gap: 72px; }
.footer-menus { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.footer-menu { display: flex; flex-direction: column; gap: 24px; }
.footer-menu-links { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.footer-link { color: #fff; text-decoration: none; transition: opacity 0.2s; }
.footer-link:hover { opacity: 0.5; }
.social-links { display: flex; gap: 24px; }
.social-link { display: flex; align-items: center; gap: 12px; opacity: 0.5; color: #fff; text-decoration: none; transition: opacity 0.2s; }
.social-link:hover { opacity: 1; }
.social-link img { width: 20px; height: 20px; }
.footer-bottom { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 24px; }
.top-link { display: inline-flex; align-items: center; gap: 3px; color: #fff; }
.newsletter { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.newsletter-row { display: flex; gap: 12px; width: 100%; max-width: 460px; }
.newsletter .form-input { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.3); color: #fff; height: 46px; }
.newsletter .form-input::placeholder { color: rgba(255, 255, 255, 0.6); }
.newsletter .form-status { padding: 10px 14px; font-size: 14px; }

/* Responsive */
@media (max-width: 1200px) {
  .media-grid { grid-template-columns: repeat(2, 1fr); }
  .article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .auction-row { grid-template-columns: 150px minmax(0, 1.6fr) minmax(0, 1fr); }
  .auction-row .links { grid-column: 2 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
}
@media (max-width: 991px) {
  .h1 { font-size: 51px; }
  .hero-copy .h1 { font-size: 48px; }
  .h2 { font-size: 42px; }
  .h3 { font-size: 24px; }
  .quote-text { font-size: 42px; }
  .section.text-header { padding-top: 96px; }
  .section.text-header.compact { padding-top: 72px; }
  .section-with-title, .stack-xl { gap: 72px; }
  .grid-halves, .about-grid, .card-grid-2 { grid-template-columns: 1fr; gap: 48px; }
  .about-collage { grid-template-rows: auto auto; }
  .about-collage img { height: auto; aspect-ratio: 3 / 2; }
  .about-collage .wide { aspect-ratio: 16 / 9; }
  .about-image { min-height: 320px; }
  .hero { min-height: calc(100vh - var(--nav-h)); min-height: calc(100svh - var(--nav-h)); padding-top: 48px; margin-top: 0; }
  .hero.v-split .hero-container, .hero.v-stack .hero-container, .hero.v-center .hero-container { flex-direction: column; align-items: stretch; justify-content: flex-end; gap: 40px; text-align: left; }
  .hero-copy, .hero.v-center .hero-copy { max-width: none; align-items: flex-start; flex: none; }
  .hero.v-center .hero-cta { justify-content: flex-start; }
  .hero-auction { max-width: none; flex: none; }
  .hero.align-bottom { height: 540px; margin-top: 0; }
  .hero.no-image { padding-top: 72px; padding-bottom: 96px; }
  .hero.no-image.split-photo { padding-top: 56px; padding-bottom: 72px; }
  .hero-split { grid-template-columns: 1fr; gap: 40px; }
  .hero-split .hero-copy { max-width: none; }
  .hero-split-photo { aspect-ratio: 16 / 10; }
  .hero-title-row { flex-direction: column; align-items: flex-start; gap: 24px; }
  .tour-features-grid { grid-template-columns: 1fr; }
  .tour-feature-box { gap: 48px; }
  .wide-feature-box { flex-direction: column; }
  .widget-with-image { max-width: 100%; }
  .text-features-section { display: flex; flex-direction: column; gap: 48px; }
  .features-image-and-button { position: static; }
  .icon-feature-section { grid-template-columns: 1fr; }
  .icon-features-section-image { justify-self: start; }
  .icon-list-item { grid-template-columns: minmax(auto, 90px) 1fr; }
  .icon-list-item > :last-child { grid-column: 2; }
  .values-grid, .stats-grid, .partner-grid { grid-template-columns: 1fr 1fr; }
  .contact-layout, .contact-details-section { flex-direction: column; align-items: flex-start; gap: 48px; }
  .venue-body { grid-template-columns: 1fr; gap: 48px; }
  .venue-collage { grid-template-rows: 200px 200px; }
  .venue-panes { min-height: 0; }
  .cms-categories-wrapper { grid-template-columns: 1fr; gap: 24px; }
  .cms-categories { justify-content: flex-start; }
  .cms-featured-grid { grid-template-columns: 1fr; }
  .grading-row { grid-template-columns: 1fr; gap: 24px; }
  .post-grid { grid-template-columns: 1fr; gap: 24px; }
  .footer-wrapper { display: flex; flex-direction: column; gap: 72px; }
  /* mobile navigation */
  .nav-menu { position: fixed; inset: 0; z-index: 999; background: var(--navy); overflow: auto; display: none; flex-direction: column; padding: 24px; }
  body.nav-open .nav-menu { display: flex; }
  body.nav-open { overflow: hidden; }
  .nav-menu-head { display: flex; justify-content: space-between; align-items: center; height: 54px; margin-bottom: 24px; }
  .nav-menu-close { background: none; border: 0; color: #fff; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
  .nav-links { flex-direction: column; align-items: stretch; gap: 12px; }
  .nav-link { color: #fff; font-size: 21px; padding: 0 0 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.15); border-radius: 0; text-align: left; }
  .nav-menu-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 36px; }
  .menu-button { display: block; }
  .navbar-row { height: 54px; }
  .navbar { padding: 0; }
  .navbar-wrapper { padding: 9px 18px; }
  .nav-logo { height: 38px; }
}
@media (max-width: 767px) {
  .h1 { font-size: 42px; line-height: 1.15; }
  .hero-copy .h1 { font-size: 40px; }
  .h2 { font-size: 42px; }
  .h3 { font-size: 21px; }
  .h4 { font-size: 18px; }
  .quote-text { font-size: 29px; line-height: 1.2; }
  .section.pb-xl { padding-bottom: 96px; }
  .section.text-header { padding-top: 72px; }
  .section-with-title, .stack-xl { gap: 48px; }
  :root { --nav-h: 66px; }
  .hero { padding-top: 24px; padding-bottom: 24px; }
  .hero.align-bottom { height: 460px; }
  .features-list-item { grid-template-columns: auto 1fr; }
  .features-list-item > :last-child { grid-column: 1 / -1; }
  .auction-grid { grid-template-columns: 1fr; }
  .auction-card { display: flex; flex-direction: column; padding: 24px; gap: 16px; min-height: 0; }
  .auction-row { grid-template-columns: 1fr; gap: 16px; padding: 26px; }
  .auction-row .links { grid-column: 1; }
  .form-row { grid-template-columns: 1fr; gap: 24px; }
  .grading-row .chart img { min-width: 820px; }
  .logo-row { gap: 24px 40px; }
  .logo-row img { height: 48px; }
  .logo-row .logo-text { font-size: 22px; }
  .blog-grid { grid-template-columns: 1fr; gap: 48px; }
  .article-grid { grid-template-columns: 1fr; }
  .icon-features-grid.cols-3 { grid-template-columns: 1fr; }
  .tabs-menu { flex-direction: column; }
  .footer-right { gap: 48px; }
  .navbar-row { height: 48px; }
}
@media (max-width: 479px) {
  .section { padding: 60px 0; }
  .section.pb-xl { padding-bottom: 72px; }
  .section.text-header { padding-top: 60px; }
  .container { padding: 0 18px; }
  .h1 { font-size: 29px; letter-spacing: 0; }
  .hero-copy .h1 { font-size: 29px; }
  .h2 { font-size: 29px; letter-spacing: 0; }
  .h3 { font-size: 19px; }
  .quote-text { font-size: 24px; }
  .large-text { font-size: 18px; }
  .hero.align-bottom { height: 400px; }
  .hero.no-image { padding-top: 48px; padding-bottom: 60px; }
  .nav-button { display: none; }
  .nav-logo { height: 30px; }
  .navbar-wrapper { padding: 9px 12px; }
  .values-grid, .stats-grid, .partner-grid, .icon-features-grid, .media-grid, .venue-gallery, .code-list { grid-template-columns: 1fr; }
  .icon-features-grid, .icon-features-grid.cols-3 { gap: 36px; grid-template-columns: 1fr; }
  .icon-list-item { grid-template-columns: 1fr; }
  .icon-list-item > :last-child { grid-column: 1; }
  .values-list-item { grid-template-columns: 1fr; gap: 6px; }
  .venue-collage { grid-template-rows: 150px 150px; gap: 8px; }
  .chain-node { font-size: 18px; padding: 10px 20px; }
  .wide-feature-box { padding: 18px; }
  .tour-feature-box { padding: 18px; }
  .card { padding: 24px; }
  .auction-date .day { font-size: 44px; }
  .auction-card { padding: 20px; }
  .cta-section { padding: 60px 0; }
  .footer { padding-top: 48px; }
  .footer-menus { display: flex; flex-direction: column; gap: 36px; }
  .footer-bottom { display: flex; flex-direction: column; align-items: flex-start; }
  .newsletter-row { flex-direction: column; }
}

/* Language switch: on phones the switch lives in the slide-out menu only */
@media (max-width: 767px) {
  .navbar-right .lang-switch { display: none; }
}
@media (max-width: 479px) {
  html:lang(zh) .h1, html:lang(ja) .h1, html:lang(zh) .hero-copy .h1, html:lang(ja) .hero-copy .h1 { font-size: 27px; }
}
