/* ============================================================
   Antique Padlocks — Main Theme CSS
   assets/css/theme.css
   ============================================================ */

/* ─── CSS CUSTOM PROPERTIES ─── */
:root {
  /* ── Brand palette ── */
  --ap-navy:        #0B3C5D;
  --ap-navy-dk:     #072d46;
  --ap-navy-lt:     #1a5276;
  --ap-red:         #C62828;
  --ap-red-dk:      #8E1B1B;
  --ap-red-lt:      #e53935;

  /* ── Neutrals ── */
  --ap-white:       #ffffff;
  --ap-off-white:   #F8F9FA;
  --ap-light-gray:  #F8F9FA;
  --ap-mid-gray:    #e9ecef;
  --ap-rule:        #dee2e6;
  --ap-warm-rule:   #ced4da;

  /* ── Text ── */
  --ap-ink:         #1a1a2e;
  --ap-ink-mid:     #3d3d5c;
  --ap-ink-light:   #6c757d;

  /* ── Legacy aliases — keep these so old rules still compile ── */
  --ap-brass:       #C62828;
  --ap-brass-lt:    #e53935;
  --ap-brass-dk:    #8E1B1B;
  --ap-iron:        #0B3C5D;
  --ap-iron-deep:   #072d46;
  --ap-parchment:   #F8F9FA;

  /* ── Typography ── */
  --ap-font-body:   'Source Serif 4', Georgia, serif;
  --ap-font-head:   'Bebas Neue', 'Arial Narrow', sans-serif;
  --ap-font-mono:   'DM Mono', 'Courier New', monospace;

  /* ── Spacing ── */
  --ap-radius:      4px;
  --ap-shadow:      0 2px 16px rgba(11,60,93,0.10);
  --ap-shadow-lg:   0 8px 40px rgba(11,60,93,0.16);
}

/* ─── BASE ─── */
body {
  font-family: var(--ap-font-body);
  color: var(--ap-ink);
  background: var(--ap-white);
  font-size: 18px;
  line-height: 1.75;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ap-font-head);
  color: var(--ap-ink);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

a {
  color: var(--ap-brass);
  transition: color 0.2s;
}

a:hover { color: var(--ap-brass-lt); }

/* ─── KADENCE OVERRIDES ─── */

/* Header */
.site-header,
#masthead {
  border-bottom: 1px solid var(--ap-rule) !important;
  background: var(--ap-white) !important;
}

/* Keep nav links styled */
.main-navigation a,
.nav--toggle-sub a {
  font-family: var(--ap-font-mono);
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ap-ink-light);
  transition: color 0.2s;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a {
  color: var(--ap-ink);
}

/* Underline hover effect on nav items */
.main-navigation li a {
  position: relative;
}

.main-navigation li a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0; right: 0;
  height: 2px;
  background: var(--ap-brass);
  transform: scaleX(0);
  transition: transform 0.2s;
}

.main-navigation li a:hover::after,
.main-navigation .current-menu-item > a::after {
  transform: scaleX(1);
}

/* Buttons */
.wp-block-button__link,
.button,
button[type="submit"],
input[type="submit"] {
  font-family: var(--ap-font-mono) !important;
  font-size: 0.58rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  background: var(--ap-brass) !important;
  color: var(--ap-white) !important;
  padding: 0.7rem 1.4rem !important;
  transition: background 0.2s, transform 0.15s !important;
  border: none !important;
}

.wp-block-button__link:hover,
.button:hover,
button[type="submit"]:hover {
  background: var(--ap-brass-lt) !important;
  transform: translateY(-1px);
}

/* Outline button variant */
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  border: 1px solid var(--ap-warm-rule) !important;
  color: var(--ap-ink-mid) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  border-color: var(--ap-brass) !important;
  color: var(--ap-brass) !important;
  transform: none;
}

/* ─── PADLOCK COUNTER SHORTCODE ─── */
.ap-counter {
  display: inline-flex;
  flex-direction: column;
  gap: 0.1rem;
}

.ap-counter__number {
  font-family: var(--ap-font-head);
  font-size: 2rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
}

.ap-counter__label {
  font-family: var(--ap-font-mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,0.80);
}

/* On dark backgrounds */
.ap-section--dark .ap-counter__number,
.ap-section--iron .ap-counter__number {
  color: #ffffff;
}

/* ─── TOP BAR ─── */
.ap-top-bar {
  background: var(--ap-iron);
  padding: 0.4rem 2rem;
}

.ap-top-bar-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ap-top-bar p,
.ap-top-bar span {
  font-family: var(--ap-font-mono);
  font-size: 0.52rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5a5040;
  margin: 0;
}

.ap-top-bar a {
  font-family: var(--ap-font-mono);
  font-size: 0.52rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6a6050;
  margin-left: 1.5rem;
  text-decoration: none;
  transition: color 0.2s;
}

.ap-top-bar a:hover { color: var(--ap-brass-lt); }

/* ─── HERO SECTION ─── */
.ap-hero {
  background: var(--ap-navy);
  border-bottom: none;
  padding: 5rem 2rem 4.5rem;
  position: relative;
  overflow: hidden;
}

.ap-hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--ap-red);
}

.ap-hero .ap-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 560px;
  gap: 4rem;
  align-items: center;
}

.ap-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--ap-font-mono);
  font-size: 1.05rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ap-red-lt);
  margin-bottom: 1.25rem;
}

.ap-eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--ap-red-lt);
  display: block;
  flex-shrink: 0;
}

.ap-hero-title {
  font-family: var(--ap-font-head);
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.12;
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.ap-hero-title em { color: var(--ap-red-lt); }

.ap-hero-quote {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.80);
  font-style: italic;
  line-height: 1.7;
  margin-bottom: 2.5rem;
  padding-left: 1.25rem;
  border-left: 2px solid rgba(255,255,255,0.20);
}

.ap-hero-quote cite {
  display: block;
  margin-top: 0.6rem;
  font-family: var(--ap-font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  font-style: normal;
}

/* Stats bar */
.ap-stats-bar {
  display: flex;
  gap: 0;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 3px;
  overflow: hidden;
  width: fit-content;
}

.ap-stat {
  padding: 1rem 1.5rem;
  border-right: 1px solid rgba(255,255,255,0.15);
  background: transparent;
}

.ap-stat:last-child { border-right: none; }

.ap-stat__number {
  font-family: var(--ap-font-head);
  font-size: 2.2rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  display: block;
}

.ap-stat__label {
  font-family: var(--ap-font-mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.85);
  display: block;
  margin-top: 0.2rem;
}

/* ─── SUPPORT SECTION ─── */
.ap-section--iron {
  background: var(--ap-iron);
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
}

.ap-section--iron::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--ap-red);
}

.ap-section--iron .ap-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 5rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.ap-section--iron h2,
.ap-section--iron h3 {
  color: #ffffff;
}

.ap-section--iron h2 em { color: var(--ap-red-lt); }
.ap-section--iron .ap-eyebrow { color: var(--ap-red-lt); }
.ap-section--iron .ap-eyebrow::before { background: var(--ap-red-lt); }

.ap-support-body {
  color: rgba(255,255,255,0.90);
  font-size: 1.125rem;
  line-height: 1.85;
  max-width: 540px;
  margin-bottom: 2rem;
}

.ap-support-body strong { color: #ffffff; font-weight: 700; }

.ap-support-actions {
  display: flex;
  gap: 0.85rem;
  flex-wrap: wrap;
  align-items: center;
}

/* Support card (stats) */
.ap-support-card {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 4px;
  overflow: hidden;
}

.ap-support-card__header {
  background: rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  padding: 0.85rem 1.25rem;
  font-family: var(--ap-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
}

.ap-support-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.ap-support-stat {
  padding: 1.25rem;
  border-right: 1px solid rgba(255,255,255,0.10);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.ap-support-stat:nth-child(even) { border-right: none; }
.ap-support-stat:nth-child(3),
.ap-support-stat:nth-child(4)    { border-bottom: none; }

.ap-support-stat__n {
  font-family: var(--ap-font-head);
  font-size: 2rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  display: block;
  margin-bottom: 0.2rem;
}

.ap-support-stat__l {
  font-family: var(--ap-font-mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.80);
  display: block;
}

.ap-support-card__footer {
  padding: 0.9rem 1.25rem;
  border-top: 1px solid rgba(255,255,255,0.10);
  font-size: 0.88rem;
  color: rgba(255,255,255,0.75);
  font-style: italic;
  line-height: 1.5;
}

/* ─── GALLERY SECTION ─── */
.ap-section--white {
  background: var(--ap-white);
  padding: 5rem 2rem;
}

.ap-section--gray {
  background: var(--ap-light-gray);
  border-top: 1px solid var(--ap-rule);
  border-bottom: 1px solid var(--ap-rule);
  padding: 4rem 2rem;
}

.ap-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.ap-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--ap-rule);
  flex-wrap: wrap;
  gap: 0.75rem;
}

.ap-section-label {
  font-family: var(--ap-font-mono);
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ap-brass);
  margin-bottom: 0.35rem;
  display: block;
}

.ap-section-heading {
  font-family: var(--ap-font-head);
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  font-weight: 700;
  color: var(--ap-ink);
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 0;
}

.ap-section-sub {
  color: var(--ap-ink-light);
  font-style: italic;
  font-size: 1.05rem;
  margin-top: 0.2rem;
}

.ap-view-all {
  font-family: var(--ap-font-mono);
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ap-brass);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
  text-decoration: none;
  transition: gap 0.2s;
}

.ap-view-all::after { content: '→'; }
.ap-view-all:hover  { gap: 0.7rem; color: var(--ap-brass-lt); }

/* Gallery grid */
.ap-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
  gap: 1px;
  border: 1px solid var(--ap-rule);
  border-radius: 4px;
  overflow: hidden;
  background: var(--ap-rule);
}

.ap-gallery-card {
  background: var(--ap-white);
  display: block;
  color: inherit;
  text-decoration: none;
  transition: background 0.2s;
  cursor: pointer;
}

.ap-gallery-card:hover { background: var(--ap-off-white); }

.ap-gallery-card__thumb {
  height: 140px;
  background: var(--ap-white);
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--ap-rule);
  overflow: hidden;
  position: relative;
}

.ap-gallery-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0.5rem;
  transition: transform 0.25s;
}

.ap-gallery-card:hover .ap-gallery-card__thumb img {
  transform: scale(1.04);
}

.ap-gallery-card__body {
  padding: 0.85rem 1rem;
}

.ap-gallery-card__title {
  font-family: var(--ap-font-body);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ap-ink);
  line-height: 1.3;
  margin-bottom: 0.2rem;
}

.ap-gallery-card__count {
  font-family: var(--ap-font-mono);
  font-size: 0.48rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ap-ink-light);
}

.ap-gallery-card__arrow {
  font-family: var(--ap-font-mono);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ap-brass);
  margin-top: 0.4rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.2s, transform 0.2s;
}

.ap-gallery-card:hover .ap-gallery-card__arrow {
  opacity: 1;
  transform: translateX(0);
}

/* ─── INDEX LINKS ─── */
.ap-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem;
}

.ap-index-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: 3px;
  font-size: 0.92rem;
  color: var(--ap-ink-mid);
  text-decoration: none;
  transition: all 0.15s;
}

.ap-index-link:hover {
  border-color: var(--ap-brass);
  color: var(--ap-ink);
  padding-left: 1.2rem;
}

.ap-index-link svg {
  width: 14px;
  height: 14px;
  color: var(--ap-rule);
  flex-shrink: 0;
  transition: color 0.15s;
}

.ap-index-link:hover svg { color: var(--ap-brass); }

/* ─── ABOUT SECTION ─── */
.ap-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
}

.ap-about-text p {
  color: var(--ap-ink-mid);
  font-size: 1.125rem;
  line-height: 1.85;
  margin-bottom: 1.1rem;
}

.ap-about-text p:first-of-type {
  font-size: 1.1rem;
  font-style: italic;
}

/* Book list */
.ap-book-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
  border: 1px solid var(--ap-rule);
  border-radius: 4px;
  overflow: hidden;
}

.ap-book-card {
  background: var(--ap-white);
  display: flex;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid var(--ap-rule);
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}

.ap-book-card:last-child { border-bottom: none; }
.ap-book-card:hover      { background: var(--ap-off-white); }

.ap-book-card__spine {
  width: 52px;
  height: 70px;
  background: var(--ap-light-gray);
  border: 1px solid var(--ap-rule);
  border-radius: 2px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ap-ink-light);
}

.ap-book-card__spine img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ap-book-card__info h4 {
  font-family: var(--ap-font-head);
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
  line-height: 1.3;
}

.ap-book-card__info p {
  font-size: 0.82rem;
  color: var(--ap-ink-light);
  line-height: 1.5;
  margin-bottom: 0.5rem;
}

.ap-book-link {
  font-family: var(--ap-font-mono);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ap-brass);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

/* ─── SINGLE PADLOCK PAGE ─── */
.ap-padlock-single {
  max-width: 1200px;
  margin: 3rem auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 4rem;
  align-items: start;
}

.ap-padlock-gallery {
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: 4px;
  padding: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
}

.ap-padlock-gallery img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.ap-padlock-meta {
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: 4px;
  overflow: hidden;
  position: sticky;
  top: 90px;
}

.ap-padlock-meta__header {
  background: var(--ap-iron);
  padding: 1rem 1.25rem;
}

.ap-padlock-meta__header h1 {
  font-family: var(--ap-font-head);
  font-size: 1.2rem;
  font-weight: 700;
  color: #fdfaf4;
  margin-bottom: 0.2rem;
  line-height: 1.3;
}

.ap-padlock-meta__id {
  font-family: var(--ap-font-mono);
  font-size: 0.52rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ap-brass);
}

.ap-padlock-meta__fields {
  padding: 0;
}

.ap-meta-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0.7rem 1.25rem;
  border-bottom: 1px solid var(--ap-rule);
  gap: 1rem;
}

.ap-meta-row:last-child { border-bottom: none; }

.ap-meta-key {
  font-family: var(--ap-font-mono);
  font-size: 0.52rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ap-ink-light);
  flex-shrink: 0;
}

.ap-meta-val {
  font-size: 0.92rem;
  color: var(--ap-ink-mid);
  text-align: right;
}

.ap-meta-val a {
  color: var(--ap-brass);
  text-decoration: none;
}

.ap-meta-val a:hover { text-decoration: underline; }

/* ─── BREADCRUMB ─── */
.ap-breadcrumb {
  background: var(--ap-light-gray);
  border-bottom: 1px solid var(--ap-rule);
  padding: 0.65rem 2rem;
}

.ap-breadcrumb-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--ap-font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ap-ink-light);
}

.ap-breadcrumb a {
  color: var(--ap-brass);
  text-decoration: none;
}

.ap-breadcrumb a:hover { text-decoration: underline; }

/* ─── SUBPAGE HEADER ─── */
.ap-page-hero {
  background: var(--ap-iron);
  padding: 3.5rem 2rem 3rem;
  border-bottom: 2px solid var(--ap-brass-dk);
  position: relative;
  overflow: hidden;
}

.ap-page-hero::after {
  content: '';
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 40%;
  background: linear-gradient(to left, rgba(168,120,40,0.05), transparent);
  pointer-events: none;
}

.ap-page-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.ap-page-hero h1 {
  font-family: var(--ap-font-head);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: #fdfaf4;
  line-height: 1.15;
  margin-bottom: 0.6rem;
}

.ap-page-hero-desc {
  color: #7a6a50;
  font-style: italic;
  font-size: 1.125rem;
  max-width: 560px;
}

/* ─── FOOTER OVERRIDES ─── */
.site-footer,
#colophon {
  background: var(--ap-iron) !important;
  border-top: 3px solid var(--ap-brass) !important;
  color: #4a4238 !important;
}

.site-footer a,
#colophon a {
  color: #4a4238;
  transition: color 0.2s;
}

.site-footer a:hover,
#colophon a:hover {
  color: var(--ap-brass-lt);
}

/* ─── KADENCE BLOCK OVERRIDES ─── */

/* Row / Section backgrounds */
.wp-block-kadence-rowlayout.ap-iron-bg {
  background-color: var(--ap-iron) !important;
}

.wp-block-kadence-rowlayout.ap-off-white-bg {
  background-color: var(--ap-off-white) !important;
}

.wp-block-kadence-rowlayout.ap-light-gray-bg {
  background-color: var(--ap-light-gray) !important;
}

/* Separator */
.ap-brass-rule {
  border: none !important;
  height: 2px !important;
  background: linear-gradient(to right, transparent, var(--ap-brass), transparent) !important;
  margin: 0 !important;
}

/* ─── UTILITY CLASSES ─── */
.ap-text-brass  { color: var(--ap-brass) !important; }
.ap-text-light  { color: var(--ap-ink-light) !important; }
.ap-text-italic { font-style: italic; }
.ap-font-mono   { font-family: var(--ap-font-mono) !important; font-size: 0.825rem; letter-spacing: 0.1em; text-transform: uppercase; }
.ap-font-head   { font-family: var(--ap-font-head) !important; }

.ap-tag {
  display: inline-block;
  font-family: var(--ap-font-mono);
  font-size: 0.5rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ap-brass);
  background: #faf5ea;
  padding: 0.2rem 0.55rem;
  border-radius: 2px;
}

.ap-tag--iron {
  background: var(--ap-iron);
  color: var(--ap-brass-lt);
}

/* ─── ANIMATIONS ─── */
@keyframes ap-fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ap-fade-up {
  animation: ap-fade-up 0.6s ease both;
}

.ap-fade-up--d1 { animation-delay: 0.1s; }
.ap-fade-up--d2 { animation-delay: 0.2s; }
.ap-fade-up--d3 { animation-delay: 0.3s; }

/* ─── RESPONSIVE ─── */
@media (max-width: 980px) {
  .ap-hero .ap-inner,
  .ap-section--iron .ap-inner,
  .ap-about-grid,
  .ap-padlock-single {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .ap-support-card { display: none; }
  .ap-padlock-meta { position: static; }
}

@media (max-width: 640px) {
  .ap-hero,
  .ap-section--white,
  .ap-section--gray,
  .ap-section--iron {
    padding: 3rem 1rem;
  }

  .ap-gallery-grid { grid-template-columns: 1fr 1fr; }
  .ap-index-grid   { grid-template-columns: 1fr; }
  .ap-stats-bar    { flex-direction: column; width: 100%; }
  .ap-stat         { border-right: none !important; border-bottom: 1px solid var(--ap-rule); }
  .ap-section-header { flex-direction: column; align-items: flex-start; }
  .ap-padlock-single { padding: 0 1rem; }
}


/* ============================================================
   SUBPAGE STYLES — added for gallery, detail, archive, search
   ============================================================ */

/* ─── TOP BAR ─── */
.ap-top-bar { background: var(--ap-iron); padding: 0.4rem 2rem; }
.ap-top-bar-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; }
.ap-top-bar-left,
.ap-top-bar-inner span,
.ap-top-bar-menu a { font-family: var(--ap-font-mono); font-size: 0.52rem; letter-spacing: 0.12em; text-transform: uppercase; color: #5a5040; }
.ap-top-bar-links a,
.ap-top-bar-menu a { margin-left: 1.5rem; text-decoration: none; transition: color 0.2s; }
.ap-top-bar-links a:hover,
.ap-top-bar-menu a:hover { color: var(--ap-brass-lt); }
.ap-top-bar-menu { list-style: none; display: flex; gap: 0; margin: 0; padding: 0; }
.ap-top-bar-menu li { display: inline; }

/* ─── SITE HEADER ─── */
.ap-site-header { background: var(--ap-white); border-bottom: 1px solid var(--ap-rule); position: sticky; top: 0; z-index: 200; }
.ap-header-inner { max-width: 1200px; margin: 0 auto; padding: 0.5rem 2rem; min-height: 140px; display: flex; align-items: center; justify-content: space-between; }

/* Logo */
.ap-site-logo { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; }
.ap-logo-img { width: 126px; height: 126px; object-fit: contain; mix-blend-mode: screen; border-radius: 8px; }
.ap-logo-divider { width: 1px; height: 32px; background: var(--ap-rule); }
.ap-logo-text strong { font-family: var(--ap-font-head); font-size: 1.9rem; color: var(--ap-ink); font-weight: 700; display: block; line-height: 1.1; letter-spacing: -0.01em; white-space: nowrap; }
.ap-logo-text span { font-family: var(--ap-font-mono); font-size: 1rem; color: var(--ap-ink-light); letter-spacing: 0.14em; text-transform: uppercase; }

/* Nav */
.ap-site-nav { display: flex; align-items: center; }
.ap-nav-menu { list-style: none; display: flex; margin: 0; padding: 0; }
.ap-nav-menu a { font-family: var(--ap-font-mono); font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ap-ink-light); padding: 0.45rem 0.85rem; transition: color 0.2s; position: relative; display: block; text-decoration: none; }
.ap-nav-menu a::after { content: ''; position: absolute; bottom: -1px; left: 0.85rem; right: 0.85rem; height: 2px; background: var(--ap-brass); transform: scaleX(0); transition: transform 0.2s; }
.ap-nav-menu a:hover,
.ap-nav-menu .current-menu-item > a { color: var(--ap-ink); }
.ap-nav-menu a:hover::after,
.ap-nav-menu .current-menu-item > a::after { transform: scaleX(1); }

.ap-nav-search-btn { margin-left: 0.75rem; display: flex; align-items: center; gap: 0.4rem; background: none; border: 1px solid var(--ap-rule); color: var(--ap-ink-light); font-family: var(--ap-font-mono); font-size: 0.58rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.45rem 0.9rem; cursor: pointer; border-radius: 2px; transition: all 0.2s; text-decoration: none; }
.ap-nav-search-btn:hover { border-color: var(--ap-brass); color: var(--ap-brass); }

/* Hamburger */
.ap-hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.ap-hamburger span { display: block; width: 24px; height: 1.5px; background: var(--ap-ink); transition: all 0.3s; }
.ap-hamburger[aria-expanded="true"] span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.ap-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ap-hamburger[aria-expanded="true"] span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* Mobile menu */
.ap-mobile-menu { display: none; flex-direction: column; background: var(--ap-white); border-bottom: 1px solid var(--ap-rule); padding: 0.75rem 2rem 1rem; }
.ap-mobile-menu.is-open { display: flex; }
.ap-mobile-nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ap-mobile-nav-list a { font-family: var(--ap-font-mono); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-ink-mid); padding: 0.65rem 0; border-bottom: 1px solid var(--ap-rule); display: block; text-decoration: none; }
.ap-mobile-nav-list a:hover { color: var(--ap-brass); }

/* ─── BREADCRUMB ─── */
.ap-breadcrumb { background: var(--ap-light-gray); border-bottom: 1px solid var(--ap-rule); padding: 0.65rem 2rem; }
.ap-breadcrumb-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 0.5rem; font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ap-ink-light); }
.ap-breadcrumb a { color: var(--ap-brass); text-decoration: none; }
.ap-breadcrumb a:hover { text-decoration: underline; }
.ap-breadcrumb-sep { opacity: 0.4; }

/* ─── PAGE HERO ─── */
.ap-page-hero { background: var(--ap-iron); padding: 3.5rem 2rem 3rem; border-bottom: 2px solid var(--ap-brass-dk); position: relative; overflow: hidden; }
.ap-page-hero::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 45%; background: linear-gradient(to left, rgba(168,120,40,0.06), transparent); pointer-events: none; }
.ap-page-hero-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; position: relative; z-index: 1; }
.ap-page-hero h1 { font-family: var(--ap-font-head); font-size: clamp(2rem,4vw,3rem); font-weight: 700; color: #fdfaf4; line-height: 1.15; margin-bottom: 0.65rem; }
.ap-page-hero-desc { color: rgba(255,255,255,0.85); font-style: italic; font-size: 1.125rem; max-width: 560px; line-height: 1.7; }
.ap-page-hero-stats { display: flex; gap: 1.5rem; align-items: center; flex-shrink: 0; }
.ap-ph-stat-n { font-family: var(--ap-font-head); font-size: 2rem; font-weight: 700; color: #ffffff; line-height: 1; display: block; }
.ap-ph-stat-l { font-family: var(--ap-font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.75); display: block; }
.ap-ph-stat-divider { width: 1px; height: 36px; background: #3a3428; }

/* ─── GALLERY/CATEGORY PAGE BODY ─── */
.ap-page-body { max-width: 1200px; margin: 0 auto; padding: 2.5rem 2rem 5rem; display: grid; grid-template-columns: 240px 1fr; gap: 3rem; align-items: start; }

/* Sidebar */
.ap-sidebar { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 1.25rem; }
.ap-sidebar-widget { background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; }
.ap-sidebar-widget-title { background: var(--ap-light-gray); border-bottom: 1px solid var(--ap-rule); padding: 0.6rem 1rem; font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ap-ink-light); }
.ap-filter-body { padding: 1rem; }
.ap-filter-body label { display: block; font-family: var(--ap-font-mono); font-size: 0.52rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-ink-light); margin-bottom: 0.3rem; margin-top: 0.85rem; }
.ap-filter-body label:first-child { margin-top: 0; }
.ap-filter-body select,
.ap-filter-body input[type="text"],
.ap-filter-body input[type="search"] { width: 100%; padding: 0.45rem 0.65rem; font-family: var(--ap-font-body); font-size: 1rem; color: var(--ap-ink); background: var(--ap-off-white); border: 1px solid var(--ap-rule); border-radius: 2px; appearance: none; outline: none; transition: border-color 0.2s; }
.ap-filter-body select:focus,
.ap-filter-body input:focus { border-color: var(--ap-brass); }
.ap-filter-btn { width: 100%; margin-top: 1rem; padding: 0.6rem; background: var(--ap-brass); color: var(--ap-white); font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; border: none; border-radius: 2px; cursor: pointer; transition: background 0.2s; }
.ap-filter-btn:hover { background: var(--ap-brass-lt); }
.ap-clear-btn { display: block; width: 100%; margin-top: 0.4rem; padding: 0.45rem; background: none; color: var(--ap-ink-light); font-family: var(--ap-font-mono); font-size: 0.52rem; letter-spacing: 0.1em; text-transform: uppercase; border: 1px solid var(--ap-rule); border-radius: 2px; cursor: pointer; transition: all 0.2s; text-align: center; text-decoration: none; }
.ap-clear-btn:hover { border-color: var(--ap-warm-rule); color: var(--ap-ink-mid); }

/* Category nav list */
.ap-sidebar-widget ul { list-style: none; padding: 0.4rem 0; margin: 0; }
.ap-sidebar-widget ul li a,
.ap-cat-link { display: flex; align-items: center; justify-content: space-between; padding: 0.42rem 1rem; font-size: 0.88rem; color: var(--ap-ink-mid); transition: all 0.15s; border-left: 2px solid transparent; text-decoration: none; }
.ap-cat-link:hover { background: var(--ap-off-white); color: var(--ap-ink); border-left-color: var(--ap-warm-rule); }
.ap-cat-link.active { background: #fdf8f0; color: var(--ap-brass-dk); border-left-color: var(--ap-brass); font-weight: 600; }
.ap-cat-count { font-family: var(--ap-font-mono); font-size: 0.48rem; color: var(--ap-rule); letter-spacing: 0.05em; flex-shrink: 0; }
.ap-cat-link.active .ap-cat-count { color: var(--ap-warm-rule); }

/* Controls bar */
.ap-main-content { min-width: 0; }
.ap-controls-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--ap-rule); gap: 0.75rem; flex-wrap: wrap; }
.ap-results-count { font-family: var(--ap-font-mono); font-size: 0.58rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ap-ink-light); }
.ap-results-count strong { color: var(--ap-ink); }
.ap-controls-right { display: flex; align-items: center; gap: 1rem; }
.ap-view-toggle { display: flex; gap: 0.3rem; }
.ap-view-btn { background: none; border: 1px solid var(--ap-rule); color: var(--ap-ink-light); padding: 0.35rem 0.55rem; border-radius: 2px; cursor: pointer; font-size: 0.975rem; transition: all 0.15s; line-height: 1; }
.ap-view-btn.active, .ap-view-btn:hover { background: var(--ap-iron); color: var(--ap-brass-lt); border-color: var(--ap-iron); }

/* Item grid */
.ap-item-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(175px,1fr)); gap: 1px; background: var(--ap-rule); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; margin-bottom: 2.5rem;  align-items: stretch; }
.ap-item-card { background: var(--ap-white); display: block; text-decoration: none; color: inherit; transition: background 0.2s;  height: 100%; }
.ap-item-card:hover { background: var(--ap-off-white); }
.ap-item-card__img { height: 160px; min-height: 160px; max-height: 160px; background: var(--ap-off-white); display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--ap-rule); position: relative; overflow: hidden; flex-shrink: 0; }
.ap-item-card__img img { width: 100%; height: 100%; max-width: 100%; max-height: 160px; object-fit: contain; padding: 0.5rem; transition: transform 0.25s; display: block; }
.ap-item-card:hover .ap-item-card__img img { transform: scale(1.05); }
.ap-img-placeholder { opacity: 0.2; }
.ap-item-badge { position: absolute; top: 0.5rem; left: 0.5rem; background: var(--ap-iron); color: var(--ap-brass-lt); font-family: var(--ap-font-mono); font-size: 0.44rem; letter-spacing: 0.08em; padding: 0.15rem 0.4rem; border-radius: 2px; text-transform: uppercase; z-index: 1; }
.ap-item-card__body { padding: 0.8rem 0.9rem; }
.ap-item-card__id { font-family: var(--ap-font-mono); font-size: 0.48rem; letter-spacing: 0.1em; color: var(--ap-rule); text-transform: uppercase; margin-bottom: 0.2rem; }
.ap-item-card__title { font-family: var(--ap-font-body); font-size: 1rem; font-weight: 600; color: var(--ap-ink); line-height: 1.3; margin-bottom: 0.35rem; }
.ap-item-card__meta { display: flex; flex-direction: column; gap: 0.08rem; }
.ap-item-card__meta-row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.ap-meta-key { font-family: var(--ap-font-mono); font-size: 0.46rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ap-rule); flex-shrink: 0; }
.ap-meta-val { font-size: 0.925rem; color: var(--ap-ink-light); text-align: right; overflow-wrap: break-word; word-break: break-word; }
.ap-item-card__link { font-family: var(--ap-font-mono); font-size: 0.48rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-brass); margin-top: 0.5rem; display: flex; align-items: center; gap: 0.3rem; opacity: 0; transform: translateX(-4px); transition: opacity 0.2s, transform 0.2s; }
.ap-item-card:hover .ap-item-card__link { opacity: 1; transform: translateX(0); }

/* Item list */
.ap-item-list { flex-direction: column; gap: 1px; background: var(--ap-rule); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; margin-bottom: 2.5rem; display: none; }
.ap-item-list.visible,
.ap-item-list--search { display: flex; }
.ap-item-grid.hidden { display: none; }
.ap-list-row { background: var(--ap-white); display: grid; grid-template-columns: 90px 1fr auto; gap: 1.25rem; padding: 0.9rem 1.1rem; align-items: center; text-decoration: none; color: inherit; transition: background 0.15s; }
.ap-list-row:hover { background: var(--ap-off-white); }
.ap-list-thumb { width: 90px; height: 65px; background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 2px; display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
.ap-list-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 0.35rem; }
.ap-list-info h3 { font-family: var(--ap-font-head); font-size: 1.125rem; font-weight: 600; color: var(--ap-ink); margin-bottom: 0.3rem; line-height: 1.3; }
.ap-list-meta { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.ap-list-meta-item { font-size: 0.82rem; color: var(--ap-ink-light); }
.ap-list-meta-item::before { content: attr(data-label) ': '; font-family: var(--ap-font-mono); font-size: 0.48rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ap-rule); }
.ap-list-arrow { font-family: var(--ap-font-mono); font-size: 0.55rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ap-brass); white-space: nowrap; opacity: 0; transition: opacity 0.2s; }
.ap-list-row:hover .ap-list-arrow { opacity: 1; }

/* Pagination */
.ap-pagination { display: flex; justify-content: center; margin-top: 1.5rem; flex-wrap: wrap; gap: 4px; }
/* paginate_links type='list' wraps in <ul><li> — flatten it */
.ap-pagination ul { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ap-pagination li { display: block; }
.ap-pagination .page-numbers { font-family: var(--ap-font-mono); font-size: 0.875rem; letter-spacing: 0.05em; padding: 0.45rem 0.75rem; border: 1px solid var(--ap-rule); border-radius: 2px; background: var(--ap-white); color: var(--ap-ink-light); text-decoration: none; transition: all 0.15s; display: inline-flex; align-items: center; justify-content: center; min-width: 2rem; }
.ap-pagination .page-numbers:hover,
.ap-pagination .page-numbers.current { background: var(--ap-brass); border-color: var(--ap-brass); color: var(--ap-white); }
.ap-pagination .page-numbers.dots { border-color: transparent; background: none; cursor: default; color: var(--ap-rule); }

/* No results */
.ap-no-results { padding: 3rem 0; text-align: center; color: var(--ap-ink-light); font-style: italic; }
.ap-no-results a { color: var(--ap-brass); }

/* ─── DETAIL PAGE ─── */
.ap-detail-body { max-width: 1200px; margin: 0 auto; padding: 3rem 2rem 5rem; display: grid; grid-template-columns: 1fr 360px; gap: 3.5rem; align-items: start; }

/* Photo viewer */
.ap-photo-viewer { background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; margin-bottom: 1.25rem; }
.ap-photo-main { background: var(--ap-white); display: flex; align-items: center; justify-content: center; min-height: 400px; padding: 2.5rem; border-bottom: 1px solid var(--ap-rule); position: relative; }
.ap-photo-main img { max-width: 100%; max-height: 380px; object-fit: contain; cursor: zoom-in; }
.ap-photo-placeholder { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; color: var(--ap-ink-light); font-style: italic; font-size: 1rem; }
.ap-photo-zoom-hint { position: absolute; bottom: 0.75rem; right: 0.75rem; font-family: var(--ap-font-mono); font-size: 0.48rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-rule); display: flex; align-items: center; gap: 0.3rem; }
.ap-photo-thumbs { display: flex; overflow-x: auto; background: var(--ap-light-gray); }
.ap-photo-thumb { width: 80px; height: 72px; flex-shrink: 0; background: var(--ap-white); border-right: 1px solid var(--ap-rule); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.15s; padding: 0.4rem; }
.ap-photo-thumb:hover { background: var(--ap-off-white); }
.ap-photo-thumb.active { background: var(--ap-white); box-shadow: inset 0 -2px 0 var(--ap-brass); }
.ap-photo-thumb img { width: 100%; height: 100%; object-fit: contain; }

/* Description */
.ap-detail-description { background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; }
.ap-detail-description-header { background: var(--ap-light-gray); border-bottom: 1px solid var(--ap-rule); padding: 0.65rem 1.25rem; font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ap-ink-light); }
.ap-detail-description-body { padding: 1.5rem 1.25rem; font-size: 1.125rem; color: var(--ap-ink-mid); line-height: 1.85; }
.ap-detail-description-body p { margin-bottom: 1rem; }
.ap-detail-description-body p:last-child { margin-bottom: 0; }

/* Related section */
.ap-related-section { margin-top: 2.5rem; }
.ap-related-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--ap-rule); }
.ap-related-label { font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ap-ink-light); }
.ap-related-view-all { font-family: var(--ap-font-mono); font-size: 0.52rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-brass); display: flex; align-items: center; gap: 0.3rem; text-decoration: none; transition: gap 0.2s; }
.ap-related-view-all::after { content: '→'; }
.ap-related-view-all:hover { gap: 0.6rem; color: var(--ap-brass-lt); }
.ap-related-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--ap-rule); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; }
.ap-related-card { background: var(--ap-white); display: block; text-decoration: none; color: inherit; transition: background 0.2s; }
.ap-related-card:hover { background: var(--ap-off-white); }
.ap-related-card-img { height: 100px; background: var(--ap-white); display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--ap-rule); overflow: hidden; }
.ap-related-card-img img { width: 100%; height: 100%; object-fit: contain; padding: 0.5rem; transition: transform 0.2s; }
.ap-related-card:hover .ap-related-card-img img { transform: scale(1.05); }
.ap-related-card-body { padding: 0.65rem 0.75rem; }
.ap-related-card-title { font-family: var(--ap-font-body); font-size: 0.82rem; font-weight: 600; color: var(--ap-ink); line-height: 1.3; margin-bottom: 0.15rem; }
.ap-related-card-meta { font-family: var(--ap-font-mono); font-size: 0.46rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ap-rule); }

/* Meta panel (right sidebar on detail page) */
.ap-meta-panel { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 1.25rem; }
.ap-meta-card { background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; }
.ap-meta-card-header { background: var(--ap-iron); padding: 1.1rem 1.25rem; }
.ap-listing-id { font-family: var(--ap-font-mono); font-size: 0.5rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ap-brass); margin-bottom: 0.4rem; }
.ap-meta-card-header h1 { font-family: var(--ap-font-head); font-size: 1.25rem; font-weight: 700; color: #fdfaf4; line-height: 1.25; margin-bottom: 0.5rem; }
.ap-meta-tag { display: inline-flex; align-items: center; background: rgba(168,120,40,0.15); color: var(--ap-brass-lt); font-family: var(--ap-font-mono); font-size: 0.46rem; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.2rem 0.55rem; border-radius: 2px; text-decoration: none; }
.ap-meta-fields { padding: 0; }
.ap-meta-row { display: flex; align-items: baseline; justify-content: space-between; padding: 0.75rem 1.25rem; border-bottom: 1px solid var(--ap-rule); gap: 1rem; }
.ap-meta-row:last-child { border-bottom: none; }
.ap-meta-key { font-family: var(--ap-font-mono); font-size: 0.5rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ap-ink-light); flex-shrink: 0; }
.ap-meta-val { font-size: 1rem; color: var(--ap-ink-mid); text-align: right; line-height: 1.4; }
.ap-meta-val a { color: var(--ap-brass); }
.ap-meta-val a:hover { text-decoration: underline; }
.ap-meta-actions { padding: 1.1rem 1.25rem; background: var(--ap-light-gray); border-top: 1px solid var(--ap-rule); display: flex; flex-direction: column; gap: 0.5rem; }
.ap-btn-primary { display: flex; align-items: center; justify-content: center; gap: 0.5rem; background: var(--ap-brass); color: var(--ap-white); font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.75rem; border-radius: 2px; border: none; cursor: pointer; transition: background 0.2s; text-decoration: none; text-align: center; }
.ap-btn-primary:hover { background: var(--ap-brass-lt); color: var(--ap-white); }
.ap-btn-outline { display: flex; align-items: center; justify-content: center; gap: 0.5rem; background: none; color: var(--ap-ink-mid); font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.65rem; border-radius: 2px; border: 1px solid var(--ap-rule); cursor: pointer; transition: all 0.2s; text-decoration: none; text-align: center; }
.ap-btn-outline:hover { border-color: var(--ap-brass); color: var(--ap-brass); }
.ap-btn-ghost { display: inline-flex; align-items: center; gap: 0.4rem; background: none; color: #7a6a50; font-family: var(--ap-font-mono); font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.65rem 1rem; border-radius: 2px; border: 1px solid #3a3428; cursor: pointer; transition: all 0.2s; text-decoration: none; }
.ap-btn-ghost:hover { border-color: var(--ap-brass-dk); color: var(--ap-brass-lt); }

/* Quick links */
.ap-quick-links { background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 4px; overflow: hidden; }
.ap-quick-links-header { background: var(--ap-light-gray); border-bottom: 1px solid var(--ap-rule); padding: 0.6rem 1.1rem; font-family: var(--ap-font-mono); font-size: 0.54rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ap-ink-light); }
.ap-quick-links ul { list-style: none; padding: 0; margin: 0; }
.ap-quick-links ul li a { display: flex; align-items: center; justify-content: space-between; padding: 0.55rem 1.1rem; font-size: 0.88rem; color: var(--ap-ink-mid); border-bottom: 1px solid var(--ap-rule); transition: all 0.15s; border-left: 2px solid transparent; text-decoration: none; }
.ap-quick-links ul li:last-child a { border-bottom: none; }
.ap-quick-links ul li a:hover { background: var(--ap-off-white); color: var(--ap-ink); border-left-color: var(--ap-brass); padding-left: 1.3rem; }
.ap-quick-links ul li a svg { color: var(--ap-rule); transition: color 0.15s; }
.ap-quick-links ul li a:hover svg { color: var(--ap-brass); }

/* Prev / Next */
.ap-post-nav { display: flex; flex-direction: column; gap: 0.5rem; }
.ap-post-nav-link { display: block; padding: 0.85rem 1rem; background: var(--ap-white); border: 1px solid var(--ap-rule); border-radius: 3px; text-decoration: none; color: inherit; transition: all 0.15s; }
.ap-post-nav-link:hover { border-color: var(--ap-brass); background: var(--ap-off-white); }
.ap-post-nav-dir { font-family: var(--ap-font-mono); font-size: 0.5rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-brass); display: block; margin-bottom: 0.2rem; }
.ap-post-nav-title { font-size: 1rem; color: var(--ap-ink-mid); line-height: 1.35; display: block; }

/* ─── FOOTER ─── */
.ap-footer { background: var(--ap-iron); color: #4a4238; padding: 3.5rem 2rem 2rem; border-top: 3px solid var(--ap-brass); }
.ap-footer-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 2.5rem; }
.ap-footer-brand strong { font-family: var(--ap-font-head); font-size: 1.1rem; color: var(--ap-brass-lt); display: block; margin-bottom: 0.6rem; }
.ap-footer-brand p { font-size: 0.88rem; color: #5a5040; line-height: 1.7; max-width: 280px; margin-bottom: 1.25rem; }
.ap-footer-support { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--ap-font-mono); font-size: 0.52rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ap-brass); border: 1px solid var(--ap-brass-dk); padding: 0.4rem 0.8rem; border-radius: 2px; transition: all 0.2s; text-decoration: none; }
.ap-footer-support:hover { background: var(--ap-brass); color: var(--ap-white); }
.ap-footer-col h5 { font-family: var(--ap-font-mono); font-size: 0.52rem; letter-spacing: 0.18em; text-transform: uppercase; color: #3a3428; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #2a2520; }
.ap-footer-nav { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.ap-footer-nav a { font-size: 0.88rem; color: #4a4238; transition: color 0.2s; text-decoration: none; }
.ap-footer-nav a:hover { color: var(--ap-brass-lt); }
.ap-footer-bottom { border-top: 1px solid #2a2520; padding-top: 1.5rem; max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; font-family: var(--ap-font-mono); font-size: 0.5rem; letter-spacing: 0.08em; color: #2a2520; }

/* ─── GENERIC PAGE ─── */
.ap-generic-page { max-width: 1200px; margin: 0 auto; padding: 3.5rem 2rem 5rem; }
.ap-generic-page-inner { max-width: 760px; }
.ap-generic-page-content { font-size: 1.125rem; color: var(--ap-ink-mid); line-height: 1.85; }
.ap-generic-page-content h2 { font-family: var(--ap-font-head); font-size: 1.6rem; margin: 2rem 0 0.75rem; }
.ap-generic-page-content h3 { font-family: var(--ap-font-head); font-size: 1.25rem; margin: 1.5rem 0 0.5rem; }
.ap-generic-page-content p { margin-bottom: 1.1rem; }
.ap-generic-page-content a { color: var(--ap-brass); }
.ap-generic-page-content ul, .ap-generic-page-content ol { margin: 0 0 1.1rem 1.5rem; }
.ap-generic-page-content li { margin-bottom: 0.35rem; }

/* ─── SEARCH PAGE ─── */
.ap-search-form-wrap { max-width: 640px; margin-bottom: 2rem; }
.ap-search-form { display: flex; gap: 0; border: 1px solid var(--ap-rule); border-radius: 3px; overflow: hidden; }
.ap-search-input { flex: 1; padding: 0.8rem 1rem; font-family: var(--ap-font-body); font-size: 1.125rem; color: var(--ap-ink); background: var(--ap-white); border: none; outline: none; }
.ap-search-submit { padding: 0.8rem 1.25rem; background: var(--ap-brass); color: var(--ap-white); font-family: var(--ap-font-mono); font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; border: none; cursor: pointer; display: flex; align-items: center; gap: 0.4rem; transition: background 0.2s; flex-shrink: 0; }
.ap-search-submit:hover { background: var(--ap-brass-lt); }

/* ─── GALLERY CARD DESC ─── */
.ap-gallery-card__desc { font-size: 0.925rem; color: var(--ap-ink-light); line-height: 1.4; margin-top: 0.2rem; font-style: italic; }

/* ─── RESPONSIVE ADDITIONS ─── */
@media (max-width: 980px) {
  .ap-hamburger { display: flex; }
  .ap-site-nav { display: none; }
  .ap-page-body { grid-template-columns: 1fr; }
  .ap-sidebar { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .ap-page-hero-stats { display: none; }
  .ap-detail-body { grid-template-columns: 1fr; gap: 2rem; }
  .ap-meta-panel { position: static; }
  .ap-related-grid { grid-template-columns: 1fr 1fr; }
  .ap-footer-inner { grid-template-columns: 1fr 1fr; }
  .ap-footer-brand { grid-column: span 2; }
  .ap-top-bar-links { display: none; }
}

@media (max-width: 640px) {
  .ap-header-inner { padding: 0 1rem; }
  .ap-page-hero { padding: 2.5rem 1rem; }
  .ap-page-body { padding: 1rem 0 3rem; overflow-x: hidden; }
  .ap-detail-body { padding: 1.5rem 1rem 3rem; }
  .ap-breadcrumb { padding: 0.5rem 1rem; }
  .ap-item-grid { grid-template-columns: 1fr 1fr; max-width: 100%; }
  .ap-item-card__img { height: 130px; min-height: 130px; max-height: 130px; }
  .ap-sidebar { grid-template-columns: 1fr; }
  .ap-list-row { grid-template-columns: 70px 1fr; }
  .ap-list-arrow { display: none; }
  .ap-controls-bar { flex-direction: column; align-items: flex-start; }
  .ap-footer-inner { grid-template-columns: 1fr; }
  .ap-footer-brand { grid-column: span 1; }
  .ap-footer-bottom { flex-direction: column; gap: 0.5rem; }
  .ap-related-grid { grid-template-columns: 1fr 1fr; }
  .ap-section--iron .ap-inner { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .ap-support-card { display: none; }
}

@media (max-width: 400px) {
  .ap-item-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   READABILITY OVERRIDES — v1.1
   All Space Mono "UI" text scaled up for laptop legibility.
   Edit --ap-ui-sm / --ap-ui-base / --ap-ui-lg to adjust globally.
   ============================================================ */

:root {
  --ap-ui-xs:   0.65rem;   /* was 0.44–0.52 — badges, ids, tiny labels */
  --ap-ui-sm:   0.72rem;   /* was 0.52–0.58 — top bar, breadcrumb, meta keys */
  --ap-ui-base: 0.82rem;   /* was 0.58–0.65 — nav links, buttons, filters */
  --ap-ui-lg:   0.92rem;   /* was 0.75–0.88 — sidebar links, card titles, list meta */
}

/* ── Top bar ── */
.ap-top-bar-left,
.ap-top-bar-inner span,
.ap-top-bar-menu a,
.ap-top-bar-links a { font-size: var(--ap-ui-sm) !important; }

/* ── Header nav ── */
.ap-nav-menu a,
.main-navigation a,
.nav--toggle-sub a { font-size: var(--ap-ui-base) !important; letter-spacing: 0.06em !important; }

.ap-nav-search-btn,
.ap-mobile-nav-list a { font-size: var(--ap-ui-base) !important; }

/* ── Logo tagline ── */
.ap-logo-text span { font-size: 0.9rem !important; letter-spacing: 0.1em !important; }
.logo-text span    { font-size: var(--ap-ui-xs) !important; }

/* ── Breadcrumb ── */
.ap-breadcrumb-inner { font-size: var(--ap-ui-sm) !important; letter-spacing: 0.05em !important; }

/* ── Section labels / eyebrows ── */
.ap-section-label,
.ap-eyebrow,
.ap-page-hero-eyebrow { font-size: var(--ap-ui-sm) !important; }

/* ── Sidebar ── */
.ap-sidebar-widget-title  { font-size: var(--ap-ui-sm) !important; }
.ap-filter-body label     { font-size: var(--ap-ui-sm) !important; }
.ap-filter-body select,
.ap-filter-body input     { font-size: 1rem !important; }
.ap-filter-btn            { font-size: var(--ap-ui-base) !important; }
.ap-clear-btn             { font-size: var(--ap-ui-base) !important; }
.ap-cat-link,
.ap-sidebar-widget ul li a { font-size: 1rem !important; }
.ap-cat-count             { font-size: var(--ap-ui-xs) !important; }

/* ── Controls bar ── */
.ap-results-count         { font-size: var(--ap-ui-base) !important; }
.ap-view-btn              { font-size: 1rem !important; }

/* ── Gallery cards ── */
.ap-gallery-card__title   { font-size: 1.05rem !important; }
.ap-gallery-card__count   { font-size: var(--ap-ui-xs) !important; }
.ap-gallery-card__arrow   { font-size: var(--ap-ui-sm) !important; }

/* ── Item cards (grid) ── */
.ap-item-badge            { font-size: var(--ap-ui-xs) !important; }
.ap-item-card__id         { font-size: var(--ap-ui-xs) !important; }
.ap-item-card__title      { font-size: 1rem !important; }
.ap-meta-key              { font-size: var(--ap-ui-xs) !important; }
.ap-meta-val              { font-size: 0.92rem !important; }
.ap-item-card__link       { font-size: var(--ap-ui-sm) !important; }

/* ── List rows ── */
.ap-list-info h3          { font-size: 1.05rem !important; }
.ap-list-meta-item        { font-size: 0.92rem !important; }
.ap-list-meta-item::before { font-size: var(--ap-ui-xs) !important; }
.ap-list-arrow            { font-size: var(--ap-ui-base) !important; }

/* ── Pagination ── */
.ap-pagination .page-numbers { font-size: var(--ap-ui-base) !important; padding: 0.55rem 0.9rem !important; }
.ap-pagination ul { display: flex !important; flex-wrap: wrap !important; gap: 4px !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ap-pagination li { display: block !important; }

/* ── Section headers ── */
.ap-view-all              { font-size: var(--ap-ui-sm) !important; }
.ap-section-heading-sub   { font-size: 1.05rem !important; }

/* ── Index links ── */
.ap-index-link            { font-size: 1rem !important; }

/* ── Detail page ── */
.ap-listing-id            { font-size: var(--ap-ui-sm) !important; }
.ap-meta-card-header h1   { font-size: 1.35rem !important; }
.ap-meta-tag              { font-size: var(--ap-ui-xs) !important; }
.ap-meta-key              { font-size: var(--ap-ui-sm) !important; }
.ap-meta-val              { font-size: 1rem !important; }
.ap-btn-primary,
.ap-btn-outline,
.ap-btn-ghost             { font-size: var(--ap-ui-base) !important; }
.ap-detail-description-header { font-size: var(--ap-ui-sm) !important; }
.ap-detail-description-body   { font-size: 1.05rem !important; }
.ap-photo-zoom-hint       { font-size: var(--ap-ui-xs) !important; }

/* ── Quick links / related ── */
.ap-quick-links-header    { font-size: var(--ap-ui-sm) !important; }
.ap-quick-links ul li a   { font-size: 1rem !important; }
.ap-related-label         { font-size: var(--ap-ui-sm) !important; }
.ap-related-view-all      { font-size: var(--ap-ui-sm) !important; }
.ap-related-card-title    { font-size: 0.92rem !important; }
.ap-related-card-meta     { font-size: var(--ap-ui-xs) !important; }
.ap-post-nav-dir          { font-size: var(--ap-ui-sm) !important; }
.ap-post-nav-title        { font-size: 1rem !important; }

/* ── Support section ── */
.ap-support-stat__l       { font-size: var(--ap-ui-sm) !important; }
.ap-support-card__header  { font-size: var(--ap-ui-sm) !important; }
.ap-support-card__footer  { font-size: 0.95rem !important; }
.ap-support-body          { font-size: 1.05rem !important; }

/* ── Footer ── */
.ap-footer-col h5         { font-size: var(--ap-ui-sm) !important; letter-spacing: 0.12em !important; }
.ap-footer-nav a          { font-size: 1rem !important; }
.ap-footer-brand p        { font-size: 1rem !important; }
.ap-footer-support        { font-size: var(--ap-ui-sm) !important; }
.ap-footer-bottom         { font-size: var(--ap-ui-xs) !important; }

/* ── Search page ── */
.ap-search-input          { font-size: 1.05rem !important; }
.ap-search-submit         { font-size: var(--ap-ui-base) !important; }

/* ── Buttons (global) ── */
.wp-block-button__link,
.button,
button[type="submit"],
input[type="submit"]      { font-size: var(--ap-ui-base) !important; }

/* ── Generic page content ── */
.ap-generic-page-content  { font-size: 1.05rem !important; }
.ap-generic-page-content h2 { font-size: 1.8rem !important; }
.ap-generic-page-content h3 { font-size: 1.4rem !important; }

/* ── Stat labels ── */
.ap-stat__label,
.ap-ph-stat-l,
.hero-stat-l              { font-size: var(--ap-ui-xs) !important; }

/* ── Ensure header height accommodates larger nav ── */
.ap-header-inner          { min-height: 140px !important; }



/* ============================================================
   HEADER & FOOTER FONT FIX — v1.2
   Targets every text element in top bar, nav, and footer
   with concrete px/rem values that are readable on a laptop.
   ============================================================ */

/* ── Top bar (the strip above the header) ── */
.ap-top-bar-left,
.ap-top-bar-inner span,
.ap-top-bar-inner a,
.ap-top-bar-links a,
.ap-top-bar-menu,
.ap-top-bar-menu li,
.ap-top-bar-menu a { font-size: 15px !important; letter-spacing: 0.05em !important; }

/* ── Main nav links ── */
.ap-nav-menu a,
.ap-nav-menu li a,
.main-navigation a,
.main-navigation li a { font-size: 16px !important; letter-spacing: 0.05em !important; }

/* ── Search button in nav ── */
.ap-nav-search-btn { font-size: 15px !important; letter-spacing: 0.05em !important; padding: 0.5rem 1rem !important; }

/* ── Logo tagline ── */
.ap-logo-text span { font-size: 0.9rem !important; letter-spacing: 0.08em !important; }
.ap-logo-text strong { font-size: 1.9rem !important; white-space: nowrap !important; }

/* ── Mobile nav ── */
.ap-mobile-nav-list a { font-size: 16px !important; }

/* ── Footer column headings ── */
.ap-footer-col h5 { font-size: 14px !important; letter-spacing: 0.12em !important; }

/* ── Footer nav links ── */
.ap-footer-nav a,
.ap-footer-nav li a { font-size: 15px !important; }

/* ── Footer brand text ── */
.ap-footer-brand strong { font-size: 1.15rem !important; }
.ap-footer-brand p { font-size: 15px !important; }
.ap-footer-support { font-size: 15px !important; }

/* ── Footer bottom bar (copyright strip) ── */
.ap-footer-bottom,
.ap-footer-bottom span { font-size: 14px !important; letter-spacing: 0.05em !important; }



/* ============================================================
   TOP BAR + HERO FONT FIX — v1.3
   ============================================================ */

/* ── Top bar — all text including left stat and right links ── */
.ap-top-bar,
.ap-top-bar-inner,
.ap-top-bar-left,
.ap-top-bar-inner span,
.ap-top-bar-inner a,
.ap-top-bar-inner strong,
.ap-top-bar-links,
.ap-top-bar-links a,
.ap-top-bar-menu,
.ap-top-bar-menu li,
.ap-top-bar-menu a { font-size: 16px !important; letter-spacing: 0.04em !important; }

/* ── Hero eyebrow label (e.g. "Padlock Gallery", "A Virtual Repository") ── */
.ap-eyebrow,
.ap-section-label,
.ap-page-hero .ap-eyebrow,
.ap-page-hero-eyebrow { font-size: 15px !important; letter-spacing: 0.12em !important; }

/* ── Hero h1 ── */
.ap-page-hero h1 { font-size: clamp(2.4rem, 4.5vw, 3.5rem) !important; }

/* ── Hero description paragraph ── */
.ap-page-hero-desc { font-size: 1.15rem !important; line-height: 1.75 !important; }

/* ── Hero stat numbers (e.g. "10,300") ── */
.ap-ph-stat-n { font-size: 2.4rem !important; }

/* ── Hero stat labels (e.g. "Listings", "Categories") ── */
.ap-ph-stat-l,
.hero-stat-l { font-size: 15px !important; letter-spacing: 0.1em !important; }

/* ── Book sales page hero ── */
.ap-book-title { font-size: clamp(2.4rem, 4.5vw, 3.4rem) !important; }
.ap-book-subtitle { font-size: 1.15rem !important; }
.ap-book-spec-label { font-size: 14px !important; }
.ap-book-spec-val { font-size: 1rem !important; }



/* ============================================================
   TOP BAR FONT FIX — v1.4
   Targets by element position inside .ap-top-bar-inner
   because rendered HTML uses plain <span> and <a> tags,
   not the .ap-top-bar-left / .ap-top-bar-links classes.
   ============================================================ */

/* Every span and anchor directly inside the top bar inner wrapper */
.ap-top-bar-inner > span,
.ap-top-bar-inner > span > a,
.ap-top-bar-inner > span a,
.ap-top-bar-inner a,
.ap-top-bar-inner span,
.ap-top-bar-inner strong {
    font-size: 16px !important;
    letter-spacing: 0.04em !important;
    line-height: 1.5 !important;
}

/* The counter number inside the top bar */
.ap-top-bar-inner .ap-counter__number,
.ap-top-bar-inner .ap-counter__label {
    font-size: 16px !important;
    letter-spacing: 0.04em !important;
}

/* Ensure the top bar itself is tall enough to show the larger text */
.ap-top-bar { padding: 0.5rem 2rem !important; }


/* Also target by the shared class added to header.php spans */
.ap-top-bar-text,
.ap-top-bar-text a,
.ap-top-bar-text strong,
.ap-top-bar-text span {
    font-size: 16px !important;
    letter-spacing: 0.04em !important;
}


/* ============================================================
   COLOUR BRIGHTNESS FIX — v1.5
   Top bar, header inner, and footer text brightened.
   ============================================================ */

/* ── Top bar background + all text ── */
.ap-top-bar { background: #2a2820 !important; }

.ap-top-bar-inner > span,
.ap-top-bar-inner > span > a,
.ap-top-bar-inner > span a,
.ap-top-bar-inner a,
.ap-top-bar-inner span,
.ap-top-bar-inner strong,
.ap-top-bar-text,
.ap-top-bar-text a,
.ap-top-bar-text strong,
.ap-top-bar-text span,
.ap-top-bar-left,
.ap-top-bar-links a,
.ap-top-bar-menu a { color: #c8b990 !important; }

.ap-top-bar-inner > span > a:hover,
.ap-top-bar-inner a:hover,
.ap-top-bar-links a:hover,
.ap-top-bar-menu a:hover { color: #e8d4a0 !important; }

/* ── Header nav links ── */
.ap-nav-menu a,
.ap-nav-menu li a,
.main-navigation a { color: #5a5248 !important; }

.ap-nav-menu a:hover,
.ap-nav-menu .current-menu-item > a,
.main-navigation a:hover { color: #1a1610 !important; }

/* ── Footer — all text brightened ── */
.ap-footer { background: #232018 !important; }

.ap-footer-col h5 { color: #7a6a50 !important; border-bottom-color: #3a3428 !important; }

.ap-footer-nav a,
.ap-footer-nav li a { color: #a09070 !important; }

.ap-footer-nav a:hover,
.ap-footer-nav li a:hover { color: #c8b080 !important; }

.ap-footer-brand strong { color: #c49030 !important; }
.ap-footer-brand p { color: #7a6a50 !important; }

.ap-footer-bottom,
.ap-footer-bottom span { color: #5a5040 !important; border-top-color: #2a2520 !important; }



/* ── Admin menu notice (only visible to logged-in editors) ── */
.ap-menu-notice { margin: 0.5rem 0 0; }
.ap-menu-notice a { font-family: var(--ap-font-mono); font-size: 11px; color: var(--ap-brass); letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.7; }
.ap-menu-notice a:hover { opacity: 1; }


/* ============================================================
   COLOUR OVERHAUL — v1.6
   Top bar: deep navy + warm cream text
   Footer:  dark charcoal + bright white text
   All values meet WCAG AA contrast (4.5:1 minimum)
   ============================================================ */

/* ── TOP BAR — deep navy background ── */
.ap-top-bar {
    background: #1a2340 !important;
    border-bottom: 1px solid #243060 !important;
}

/* All text in the top bar — warm cream */
.ap-top-bar-inner,
.ap-top-bar-inner > span,
.ap-top-bar-inner > span > a,
.ap-top-bar-inner a,
.ap-top-bar-inner span,
.ap-top-bar-inner strong,
.ap-top-bar-text,
.ap-top-bar-text a,
.ap-top-bar-text strong,
.ap-top-bar-left,
.ap-top-bar-links a,
.ap-top-bar-menu a,
.ap-top-bar-menu li a {
    color: #e8dfc8 !important;  /* warm cream — 8.5:1 contrast on navy */
}

/* Hover — brighter cream/gold */
.ap-top-bar-inner a:hover,
.ap-top-bar-links a:hover,
.ap-top-bar-menu a:hover {
    color: #f5d98a !important;
}

/* ── MAIN HEADER — keep white, darken nav text for contrast ── */
.ap-site-header,
#masthead {
    background: #ffffff !important;
    border-bottom: 2px solid #1a2340 !important;
}

.ap-nav-menu a,
.ap-nav-menu li a,
.main-navigation a {
    color: #2a3050 !important;   /* navy — readable on white */
}

.ap-nav-menu a:hover,
.ap-nav-menu .current-menu-item > a,
.main-navigation a:hover {
    color: #a87828 !important;   /* brass on hover */
}

.ap-nav-search-btn {
    color: #2a3050 !important;
    border-color: #c8c0b0 !important;
}

.ap-nav-search-btn:hover {
    background: #1a2340 !important;
    color: #e8dfc8 !important;
    border-color: #1a2340 !important;
}

/* ── FOOTER — dark charcoal background ── */
.ap-footer {
    background: #1c1c1e !important;  /* Apple-style dark charcoal */
    border-top: 3px solid #a87828 !important;
}

/* Column headings — bright gold */
.ap-footer-col h5 {
    color: #c49030 !important;
    border-bottom-color: #3a3a3c !important;
}

/* Nav links — near white, very readable */
.ap-footer-nav a,
.ap-footer-nav li a {
    color: #e5e5e7 !important;   /* 12:1 contrast on charcoal */
}

.ap-footer-nav a:hover,
.ap-footer-nav li a:hover {
    color: #f5d98a !important;   /* warm gold on hover */
}

/* Brand name */
.ap-footer-brand strong {
    color: #f5d98a !important;
}

/* Brand description */
.ap-footer-brand p {
    color: #aeaeb2 !important;   /* light grey — still readable */
}

/* Support button */
.ap-footer-support {
    color: #f5d98a !important;
    border-color: #c49030 !important;
}

.ap-footer-support:hover {
    background: #a87828 !important;
    color: #ffffff !important;
}

/* Footer bottom bar */
.ap-footer-bottom {
    border-top-color: #3a3a3c !important;
    color: #aeaeb2 !important;   /* 5.9:1 contrast on charcoal */
}

.ap-footer-bottom span {
    color: #aeaeb2 !important;
}



/* ============================================================
   FOOTER COLOUR MATCH — v1.3
   Footer now uses the same navy + cream as the top bar.
   Background: #1a2340  Text: #e8dfc8  Hover: #f5d98a
   ============================================================ */

.ap-footer {
    background: #1a2340 !important;
    border-top: 3px solid #a87828 !important;
    color: #e8dfc8 !important;
}

.ap-footer-inner {
    color: #e8dfc8 !important;
}

/* Column headings */
.ap-footer-col h5 {
    color: #f5d98a !important;
    border-bottom-color: #243060 !important;
}

/* Nav links */
.ap-footer-nav a,
.ap-footer-nav li a,
.ap-footer-nav ul li a {
    color: #e8dfc8 !important;
}

.ap-footer-nav a:hover,
.ap-footer-nav li a:hover,
.ap-footer-nav ul li a:hover {
    color: #f5d98a !important;
}

/* Brand name */
.ap-footer-brand strong {
    color: #f5d98a !important;
}

/* Brand description */
.ap-footer-brand p {
    color: #e8dfc8 !important;
    opacity: 0.8;
}

/* Support button */
.ap-footer-support {
    color: #f5d98a !important;
    border-color: #a87828 !important;
}

.ap-footer-support:hover {
    background: #a87828 !important;
    color: #ffffff !important;
}

/* Bottom copyright bar */
.ap-footer-bottom {
    background: #111827 !important;
    border-top-color: #243060 !important;
    color: #e8dfc8 !important;
    opacity: 0.75;
}

.ap-footer-bottom span {
    color: #e8dfc8 !important;
}




/* ════════════════════════════════════════════════════════════
   REBRAND OVERRIDES v2.0 — single authoritative block
   All source rules fixed above — this handles edge cases only
   ════════════════════════════════════════════════════════════ */

/* ── Base ── */
body { font-family: var(--ap-font-body); color: var(--ap-ink); background: #fff; }
h1,h2,h3,h4,h5,h6 { font-family: var(--ap-font-head); letter-spacing: 0.03em; }
a { color: var(--ap-red); }
a:hover { color: var(--ap-red-dk); }
::selection { background: var(--ap-navy); color: #fff; }

/* ── Header / nav ── */
.ap-site-header, #masthead { background: var(--ap-navy) !important; border-bottom: 3px solid var(--ap-red) !important; }
.ap-logo-text strong { color: #fff !important; font-family: var(--ap-font-head) !important; }
.ap-logo-text span { color: rgba(255,255,255,0.55) !important; }
.ap-logo-divider { background: rgba(255,255,255,0.2) !important; }
.ap-nav-menu a, .ap-site-nav a { color: rgba(255,255,255,0.85) !important; font-family: var(--ap-font-mono) !important; font-size: 15px !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; }
.ap-nav-menu a:hover, .ap-site-nav a:hover { color: #fff !important; }
.ap-hamburger span { background: #fff !important; }
.ap-mobile-menu { background: var(--ap-navy-dk) !important; }
.ap-mobile-nav-list a { color: rgba(255,255,255,0.85) !important; }
.ap-mobile-nav-list a:hover { color: #fff !important; background: rgba(198,40,40,0.15) !important; }

/* ── Top bar ── */
.ap-top-bar { background: var(--ap-navy-dk) !important; }
.ap-top-bar p, .ap-top-bar span, .ap-top-bar a,
.ap-top-bar-inner > span, .ap-top-bar-inner a { color: rgba(255,255,255,0.75) !important; font-size: 14px !important; }
.ap-top-bar a:hover { color: #fff !important; }

/* ── Buttons ── */
.ap-btn, .ap-buy-btn, button[type="submit"], input[type="submit"],
.wp-block-button__link { background: var(--ap-red) !important; color: #fff !important; border: none !important; font-family: var(--ap-font-mono) !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; }
.ap-btn:hover, .ap-buy-btn:hover, button[type="submit"]:hover,
.wp-block-button__link:hover { background: var(--ap-red-dk) !important; color: #fff !important; }
/* ap-btn-outline on dark backgrounds only */
.ap-section--iron .ap-btn-outline, .ap-hero .ap-btn-outline,
.ap-section--iron .ap-btn-ghost, .ap-hero .ap-btn-ghost { background: transparent !important; border: 2px solid rgba(255,255,255,0.4) !important; color: #fff !important; font-family: var(--ap-font-mono) !important; text-transform: uppercase !important; letter-spacing: 0.08em !important; }
.ap-section--iron .ap-btn-outline:hover, .ap-hero .ap-btn-outline:hover,
.ap-section--iron .ap-btn-ghost:hover, .ap-hero .ap-btn-ghost:hover { background: rgba(255,255,255,0.1) !important; border-color: #fff !important; color: #fff !important; }
/* ap-btn-outline on light backgrounds — navy text, navy border */
.ap-btn-outline { background: transparent !important; border: 1px solid var(--ap-navy) !important; color: var(--ap-navy) !important; }
.ap-btn-outline:hover { background: var(--ap-navy) !important; color: #fff !important; }
.ap-btn-ghost { background: transparent !important; border: 1px solid var(--ap-rule) !important; color: var(--ap-ink-mid) !important; }
.ap-btn-ghost:hover { border-color: var(--ap-navy) !important; color: var(--ap-navy) !important; }

/* ── Hero ── */
.ap-hero { background: var(--ap-navy) !important; }
.ap-hero-title { color: #fff !important; }
.ap-hero-title em { color: var(--ap-red-lt) !important; font-style: normal !important; }
.ap-hero-quote { color: rgba(255,255,255,0.75) !important; border-left-color: rgba(255,255,255,0.2) !important; }
.ap-hero-quote cite { color: rgba(255,255,255,0.60) !important; font-size: 0.82rem !important; }
.ap-eyebrow { color: var(--ap-red-lt) !important; }
.ap-eyebrow::before { background: var(--ap-red-lt) !important; }
.ap-stats-bar { border-color: rgba(255,255,255,0.15) !important; background: transparent !important; }
.ap-stat { background: transparent !important; border-right-color: rgba(255,255,255,0.15) !important; }
.ap-stat__number, .ap-counter__number { color: #fff !important; font-family: var(--ap-font-head) !important; }
.ap-stat__label, .ap-counter__label { color: rgba(255,255,255,0.80) !important; font-family: var(--ap-font-mono) !important; font-size: 14px !important; }

/* ── Page heroes ── */
.ap-page-hero { background: var(--ap-navy) !important; border-bottom: 3px solid var(--ap-red) !important; }
.ap-page-hero h1 { color: #fff !important; }
.ap-page-hero-desc { color: rgba(255,255,255,0.80) !important; }
.ap-ph-stat-n { color: #fff !important; font-family: var(--ap-font-head) !important; }
.ap-ph-stat-l { color: rgba(255,255,255,0.75) !important; }
.ap-ph-stat-divider { background: rgba(255,255,255,0.15) !important; }

/* ── Section: iron/dark (support section) ── */
.ap-section--iron { background: var(--ap-navy) !important; }
.ap-section--iron h2, .ap-section--iron h3 { color: #fff !important; }
.ap-section--iron h2 em { color: var(--ap-red-lt) !important; }
.ap-section--iron p, .ap-support-body { color: rgba(255,255,255,0.90) !important; }
.ap-support-body strong { color: #fff !important; font-weight: 700 !important; }
.ap-section--iron .ap-eyebrow { color: var(--ap-red-lt) !important; }
.ap-section--iron .ap-eyebrow::before { background: var(--ap-red-lt) !important; }
.ap-support-card { background: rgba(255,255,255,0.08) !important; border-color: rgba(255,255,255,0.18) !important; }
.ap-support-card__header { background: rgba(255,255,255,0.06) !important; border-bottom-color: rgba(255,255,255,0.12) !important; color: rgba(255,255,255,0.85) !important; font-size: 13px !important; }
.ap-support-stat { border-color: rgba(255,255,255,0.10) !important; }
.ap-support-stat__n { color: #fff !important; font-family: var(--ap-font-head) !important; font-size: 2rem !important; }
.ap-support-stat__l { color: rgba(255,255,255,0.80) !important; font-size: 14px !important; }
.ap-support-card__footer { color: rgba(255,255,255,0.75) !important; border-top-color: rgba(255,255,255,0.10) !important; }

/* ── Section: white ── */
.ap-section--white { background: #fff !important; }
.ap-section--white h2, .ap-section-heading { color: var(--ap-navy) !important; font-family: var(--ap-font-head) !important; }
.ap-section--white h3 { color: var(--ap-navy) !important; }
.ap-section--white p, .ap-section-sub { color: var(--ap-ink-mid) !important; }
.ap-section-label { color: var(--ap-red) !important; font-family: var(--ap-font-mono) !important; font-size: 14px !important; letter-spacing: 0.14em !important; }
.ap-section-label::before { background: var(--ap-red) !important; }
.ap-view-all { color: var(--ap-red) !important; }
.ap-view-all:hover { color: var(--ap-red-dk) !important; }

/* ── Cards ── */
.ap-gallery-card { background: #fff !important; border: 1px solid var(--ap-rule) !important; }
.ap-gallery-card:hover { border-color: var(--ap-navy) !important; box-shadow: 0 4px 20px rgba(11,60,93,0.10) !important; }
.ap-gallery-card__thumb { background: var(--ap-off-white) !important; }
.ap-gallery-card__title { color: var(--ap-navy) !important; font-family: var(--ap-font-head) !important; font-size: 1.1rem !important; }
.ap-gallery-card:hover .ap-gallery-card__title { color: var(--ap-red) !important; }
.ap-gallery-card__count { color: var(--ap-ink-light) !important; font-size: 13px !important; }
.ap-gallery-card__arrow { color: var(--ap-red) !important; font-size: 13px !important; }

/* ── Breadcrumb ── */
.ap-breadcrumb { background: var(--ap-off-white) !important; border-bottom: 1px solid var(--ap-rule) !important; }
.ap-breadcrumb-inner a { color: var(--ap-navy) !important; }
.ap-breadcrumb-inner a:hover { color: var(--ap-red) !important; }

/* ── Index links ── */
.ap-index-link { color: var(--ap-navy) !important; background: #fff !important; border-color: var(--ap-rule) !important; }
.ap-index-link:hover { background: var(--ap-navy) !important; color: #fff !important; }

/* ── Footer ── */
.ap-footer { background: var(--ap-navy) !important; border-top: 3px solid var(--ap-red) !important; }
.ap-footer-col h5 { color: rgba(255,255,255,0.50) !important; border-bottom-color: rgba(255,255,255,0.10) !important; font-family: var(--ap-font-mono) !important; font-size: 13px !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; }
.ap-footer-nav a, .ap-footer-nav li a { color: rgba(255,255,255,0.75) !important; }
.ap-footer-nav a:hover { color: #fff !important; }
.ap-footer-brand strong { color: #fff !important; font-family: var(--ap-font-head) !important; }
.ap-footer-brand p { color: rgba(255,255,255,0.55) !important; }
.ap-footer-bottom { background: var(--ap-navy-dk) !important; border-top-color: rgba(255,255,255,0.08) !important; }
.ap-footer-bottom span { color: rgba(255,255,255,0.45) !important; }
.ap-footer-support { color: rgba(255,255,255,0.80) !important; border-color: rgba(255,255,255,0.30) !important; }
.ap-footer-support:hover { background: var(--ap-red) !important; color: #fff !important; border-color: var(--ap-red) !important; }

/* ── Forms ── */
.ap-submit-legend { background: var(--ap-navy) !important; color: #fff !important; }
.ap-submit-input:focus, .ap-submit-select:focus, .ap-submit-textarea:focus { border-color: var(--ap-navy) !important; box-shadow: 0 0 0 3px rgba(11,60,93,0.10) !important; }
.ap-req { color: var(--ap-red) !important; }

/* ══════════════════════════════════════════
   SUBCATEGORY NAV
   ══════════════════════════════════════════ */
.ap-subcat-nav { background:#f0f4f8; border-bottom:1px solid var(--ap-rule); overflow-x:auto; }
.ap-subcat-nav-inner { display:flex; flex-wrap:nowrap; gap:2px; padding:10px 20px; max-width:1280px; margin:0 auto; }
.ap-subcat-item { display:inline-flex; align-items:center; gap:5px; padding:6px 14px;
    border-radius:20px; font-size:13px; font-weight:500; color:var(--ap-navy);
    text-decoration:none; white-space:nowrap; background:#fff; border:1px solid var(--ap-rule);
    transition:background .15s,color .15s,border-color .15s; }
.ap-subcat-item:hover { background:var(--ap-navy); color:#fff; border-color:var(--ap-navy); }
.ap-subcat-item.active { background:var(--ap-navy); color:#fff; border-color:var(--ap-navy); font-weight:600; }
.ap-subcat-all { background:var(--ap-rule); }
.ap-subcat-count { font-size:11px; opacity:.7; background:rgba(0,0,0,.08); border-radius:10px; padding:1px 6px; }

/* ══════════════════════════════════════════
   A–Z LETTER BAR
   ══════════════════════════════════════════ */
.ap-az-bar { background:#fff; border-bottom:1px solid var(--ap-rule); }
.ap-az-bar-inner { display:flex; flex-wrap:wrap; gap:2px; padding:10px 20px; max-width:1280px; margin:0 auto; align-items:center; }
.ap-az-letter { display:inline-flex; align-items:center; justify-content:center;
    width:32px; height:32px; border-radius:4px; font-size:13px; font-weight:600;
    color:var(--ap-navy); text-decoration:none; border:1px solid var(--ap-rule);
    background:#fff; transition:background .15s,color .15s; }
.ap-az-letter:hover:not(.ap-az-letter--empty) { background:var(--ap-navy); color:#fff; border-color:var(--ap-navy); }
.ap-az-letter--active { background:var(--ap-red) !important; color:#fff !important; border-color:var(--ap-red) !important; }
.ap-az-letter--empty { color:#ccc; border-color:#eee; cursor:default; pointer-events:none; }
.ap-az-clear { width:auto; padding:0 12px; font-size:12px; background:var(--ap-rule); color:var(--ap-navy); }
.ap-az-clear:hover { background:var(--ap-navy); color:#fff; }

/* ══════════════════════════════════════════
   SIDEBAR CATEGORY TREE
   ══════════════════════════════════════════ */
.ap-cat-tree { list-style:none; margin:0; padding:0; }
.ap-cat-tree-item { border-bottom:1px solid var(--ap-rule); }
.ap-cat-tree-item:last-child { border-bottom:none; }
.ap-cat-link { display:flex; align-items:center; justify-content:space-between;
    padding:8px 0; font-size:13px; color:var(--ap-navy); text-decoration:none; gap:6px; }
.ap-cat-link:hover { color:var(--ap-red); }
.ap-cat-link.active { color:var(--ap-red); font-weight:600; }
.ap-cat-link--child { padding-left:14px; font-size:12px; color:#555; }
.ap-cat-link--child.active { color:var(--ap-red); font-weight:600; }
.ap-cat-arrow { font-size:11px; opacity:.5; flex-shrink:0; }
.ap-cat-children { list-style:none; margin:0; padding:0 0 6px 0; background:#f8f9fa; border-top:1px solid var(--ap-rule); }
.ap-cat-children .ap-cat-count { font-size:11px; color:#999; }

/* ── Gallery card: real photo or text initial fallback (no SVG lock) ── */
.ap-gallery-card__no-img {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #f0ebe0, #e8dcc8);
}
.ap-gallery-card__no-img span {
    font-family: var(--ap-font-head);
    font-size: 2rem; font-weight: 700;
    color: var(--ap-brass); opacity: 0.5;
    text-transform: uppercase;
}
.ap-gallery-card__subcats { font-size: 0.8em; color: var(--ap-ink-light); }

/* ══════════════════════════════════════════════════════
   HERO VISUAL — featured card + mini padlock grid
   ══════════════════════════════════════════════════════ */

.ap-hero-visual {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

/* ── Large featured card ── */
.ap-hero-featured-card {
    display: grid;
    grid-template-columns: 200px 1fr;
    background: #fff;
    border: 1px solid var(--ap-rule);
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.ap-hero-featured-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.10);
    border-color: var(--ap-brass);
}
.ap-hero-fc-img {
    background: #f7f3ec;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border-right: 1px solid var(--ap-rule);
    min-height: 200px;
}
.ap-hero-fc-img img {
    max-width: 100%;
    max-height: 180px;
    object-fit: contain;
    display: block;
}
.ap-hero-fc-body {
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.ap-hero-fc-title {
    font-family: var(--ap-font-head);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    color: var(--ap-ink);
}
.ap-hero-fc-id {
    font-family: var(--ap-font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    color: var(--ap-ink-light);
    text-transform: uppercase;
}
.ap-hero-fc-desc {
    font-size: 0.82rem;
    color: var(--ap-ink-light);
    line-height: 1.5;
    margin: 0;
    flex: 1;
}
.ap-hero-fc-cta {
    font-family: var(--ap-font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-top: 0.25rem;
}

/* ── Mini grid (2×2) ── */
.ap-hero-mini-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
}
.ap-hero-mini-card {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: #fff;
    border: 1px solid var(--ap-rule);
    border-radius: 5px;
    padding: 0.6rem;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.18s, border-color 0.18s;
    overflow: hidden;
}
.ap-hero-mini-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.09);
    border-color: var(--ap-brass);
}
.ap-hero-mini-img {
    width: 70px;
    height: 70px;
    flex-shrink: 0;
    border-radius: 3px;
    overflow: hidden;
    background: #f7f3ec;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
}
.ap-hero-mini-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.ap-hero-mini-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}
.ap-hero-mini-title {
    font-family: var(--ap-font-head);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ap-ink);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}
.ap-hero-mini-cat {
    font-family: var(--ap-font-mono);
    font-size: 0.58rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--ap-ink-light);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

/* ── No-image fallback (text initials) ── */
.ap-hero-noimg {
    width: 100%;
    height: 100%;
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f0ebe0, #e8dcc8);
}
.ap-hero-noimg span {
    font-family: var(--ap-font-head);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--ap-brass);
    opacity: 0.5;
    text-transform: uppercase;
}
.ap-hero-noimg--sm {
    min-height: 52px;
}
.ap-hero-noimg--sm span { font-size: 1.125rem; }

/* ══════════════════════════════════════════════════════════════
   GALLERY GRID — SUBCATEGORY DRAWER
   ══════════════════════════════════════════════════════════════ */

/* Card with subcats: show expand hint, change arrow text on open */
.ap-gallery-card--has-subs { cursor: pointer; }

.ap-gallery-card--open {
  background: var(--ap-off-white);
  outline: 2px solid var(--ap-brass);
  outline-offset: -2px;
  position: relative;
  z-index: 1;
}

/* Chevron badge in top-right of thumbnail */
.ap-gallery-card__expand-hint {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background: rgba(255,255,255,0.88);
  border: 1px solid var(--ap-rule);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ap-brass);
  pointer-events: none;
  transition: background 0.15s, transform 0.2s;
}

.ap-gallery-card--open .ap-gallery-card__expand-hint {
  background: var(--ap-brass);
  color: #fff;
}

.ap-gallery-card--open .ap-gc-chevron {
  transform: rotate(180deg);
}

/* ── Drawer ── */
.ap-subcat-drawer {
  grid-column: 1 / -1;   /* span full grid width */
  background: var(--ap-off-white);
  border-top: 2px solid var(--ap-brass);
  border-bottom: 1px solid var(--ap-rule);
  animation: apDrawerIn 0.18s ease;
}

@keyframes apDrawerIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ap-subcat-drawer__inner {
  padding: 1.25rem 1.5rem 1.5rem;
}

.ap-subcat-drawer__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.ap-subcat-drawer__heading {
  font-family: var(--ap-font-head);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ap-ink);
  flex: 1;
  min-width: 0;
}

.ap-subcat-drawer__view-all {
  font-family: var(--ap-font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ap-red);
  text-decoration: none;
  white-space: nowrap;
}
.ap-subcat-drawer__view-all:hover { text-decoration: underline; }

.ap-subcat-drawer__close {
  width: 26px;
  height: 26px;
  border: 1px solid var(--ap-rule);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  color: var(--ap-ink-light);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s;
}
.ap-subcat-drawer__close:hover { background: var(--ap-rule); color: var(--ap-ink); }

/* ── Pills ── */
.ap-subcat-drawer__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ap-subcat-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  background: #fff;
  border: 1px solid var(--ap-rule);
  border-radius: 999px;
  text-decoration: none;
  color: var(--ap-ink);
  font-family: var(--ap-font-body);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
  white-space: nowrap;
}

.ap-subcat-pill:hover {
  border-color: var(--ap-brass);
  background: var(--ap-off-white);
  box-shadow: 0 1px 4px rgba(0,0,0,0.07);
  color: var(--ap-ink);
}

.ap-subcat-pill__count {
  font-family: var(--ap-font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.06em;
  color: var(--ap-ink-light);
  background: var(--ap-off-white);
  border-radius: 999px;
  padding: 0.1em 0.45em;
  border: 1px solid var(--ap-rule);
}

.ap-subcat-pill:hover .ap-subcat-pill__count {
  background: #fff;
  border-color: var(--ap-brass);
}

/* Responsive: full-width pills on mobile */
@media (max-width: 480px) {
  .ap-subcat-drawer__inner { padding: 1rem; }
  .ap-subcat-pill { font-size: 0.9rem; }
}

/* ── Railroad name row in card body ── */
.ap-item-card__meta-row--railroad {
  margin-bottom: 0.15rem;
}
.ap-meta-railroad {
  font-family: var(--ap-font-body);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--ap-ink);
  line-height: 1.3;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* ─── ADVERTISER GRID (homepage bottom section) ─── */
.ap-advertiser-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
}

.ap-advertiser-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: var(--ap-radius);
  padding: 1.5rem 1rem 1rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  text-align: center;
}

.ap-advertiser-card:hover {
  border-color: var(--ap-navy);
  box-shadow: var(--ap-shadow);
  transform: translateY(-2px);
}

.ap-advertiser-card__img {
  width: 100%;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
}

.ap-advertiser-card__img img {
  max-width: 100%;
  max-height: 100px;
  object-fit: contain;
  filter: grayscale(20%);
  transition: filter 0.2s;
}

.ap-advertiser-card:hover .ap-advertiser-card__img img {
  filter: grayscale(0%);
}

.ap-advertiser-card__name {
  font-family: var(--ap-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ap-ink-light);
  line-height: 1.4;
}

@media (max-width: 640px) {
  .ap-advertiser-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
  .ap-advertiser-card {
    padding: 1rem 0.75rem 0.75rem;
  }
  .ap-advertiser-card__img {
    height: 70px;
  }
  .ap-advertiser-card__img img {
    max-height: 70px;
  }
}


/* ─── CATEGORY BUTTON INDEX (homepage) ─── */
.ap-cat-btn-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.5rem;
}

.ap-cat-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: 4px;
  font-family: var(--ap-font-body);
  font-size: 1rem;
  color: var(--ap-navy);
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
  white-space: normal;
  line-height: 1.3;
}

.ap-cat-btn:hover {
  background: var(--ap-navy);
  border-color: var(--ap-navy);
  color: #fff;
  box-shadow: 0 2px 8px rgba(11,60,93,0.15);
}

.ap-cat-btn:hover .ap-cat-btn__count {
  background: rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.85);
  border-color: transparent;
}

.ap-cat-btn__count {
  font-family: var(--ap-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ap-ink-light);
  background: var(--ap-off-white);
  border: 1px solid var(--ap-rule);
  border-radius: 3px;
  padding: 0.1em 0.45em;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

@media (max-width: 980px) {
  .ap-cat-btn-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 640px) {
  .ap-cat-btn-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ap-cat-btn {
    font-size: 0.975rem;
    padding: 0.6rem 0.85rem;
  }
}


/* ─── CATEGORY BUTTON GRID — SHOW MORE/LESS ─── */

/* Hidden buttons — only hidden on mobile/tablet */
@media (max-width: 980px) {
  .ap-cat-btn--hidden {
    display: none;
  }
  .ap-cat-btn-grid.is-expanded .ap-cat-btn--hidden {
    display: flex;
  }
}

.ap-cat-btn-more {
  margin-top: 1rem;
  text-align: center;
}

/* Only show the toggle button on mobile */
.ap-cat-btn-toggle {
  display: none;
}

@media (max-width: 980px) {
  .ap-cat-btn-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 1.25rem;
    background: var(--ap-white);
    border: 1px solid var(--ap-navy);
    border-radius: 4px;
    color: var(--ap-navy);
    font-family: var(--ap-font-mono);
    font-size: 13px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
  }
  .ap-cat-btn-toggle:hover {
    background: var(--ap-navy);
    color: #fff;
  }
  .ap-cat-toggle-icon {
    transition: transform 0.2s;
    flex-shrink: 0;
  }
  .ap-cat-btn-toggle.is-expanded .ap-cat-toggle-icon {
    transform: rotate(180deg);
  }
}


/* ─── HOMEPAGE SPLIT: BOOK AD + COLLECTORS CTA ─── */
.ap-fp-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: stretch;
}

/* ── Book ad (left) ── */
.ap-book-ad {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  background: var(--ap-navy);
  border-radius: 6px;
  padding: 1.75rem;
  color: #fff;
  height: 100%;
  box-sizing: border-box;
}

.ap-book-ad__cover {
  flex-shrink: 0;
}

.ap-book-ad__cover img {
  width: 100px;
  height: auto;
  border-radius: 3px;
  display: block;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}

.ap-book-ad__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}

.ap-book-ad .ap-section-label {
  color: rgba(255,255,255,0.60) !important;
}

.ap-book-ad__desc,
.ap-book-ad__desc a,
.ap-book-ad p {
  color: rgba(255,255,255,0.85) !important;
}

.ap-book-ad__title {
  font-family: var(--ap-font-head);
  font-size: 1.4rem;
  color: #fff;
  margin: 0;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.ap-book-ad__desc {
  font-size: 1rem;
  color: rgba(255,255,255,0.80);
  line-height: 1.6;
  margin: 0;
}

.ap-book-ad__price {
  font-family: var(--ap-font-head);
  font-size: 1.6rem;
  color: #fff;
  line-height: 1;
}

.ap-book-ad__price span {
  font-family: var(--ap-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  font-weight: 400;
  margin-left: 0.25rem;
}

.ap-book-ad__btn {
  align-self: flex-start;
  margin-top: 0.25rem;
  background: var(--ap-red) !important;
  color: #fff !important;
  font-size: 15px !important;
  padding: 0.65rem 1.25rem !important;
}

.ap-book-ad__btn:hover {
  background: var(--ap-red-dk) !important;
}

/* ── Collectors CTA (right) ── */
.ap-fp-split__collectors {
  background: var(--ap-off-white);
  border: 1px solid var(--ap-rule);
  border-radius: 6px;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: 100%;
}

.ap-fp-split__heading {
  font-family: var(--ap-font-head);
  font-size: 1.4rem;
  color: var(--ap-navy);
  margin: 0;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.ap-fp-split__body {
  font-size: 1.05rem;
  color: var(--ap-ink-mid);
  line-height: 1.7;
  margin: 0;
}

.ap-fp-split__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ap-fp-split__list li {
  font-size: 0.88rem;
  color: var(--ap-ink-mid);
  padding-left: 1.25rem;
  position: relative;
}

.ap-fp-split__list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--ap-navy);
  font-weight: 700;
  font-size: 0.925rem;
}

.ap-fp-split__actions {
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 0.5rem;
}

.ap-fp-split__actions .ap-btn-primary {
  font-size: 15px !important;
  padding: 0.65rem 1.25rem !important;
}

.ap-fp-split__actions .ap-btn-outline {
  font-size: 15px !important;
  padding: 0.65rem 1.25rem !important;
}

@media (max-width: 980px) {
  .ap-fp-split {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

@media (max-width: 640px) {
  .ap-book-ad {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem;
  }
  .ap-book-ad__btn {
    align-self: center;
  }
  .ap-fp-split__actions {
    flex-direction: column;
  }
  .ap-fp-split__actions a {
    text-align: center;
    justify-content: center;
  }
}


/* ─── REFERENCE TOOL CARD GRID ─── */
.ap-ref-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.75rem;
}

.ap-ref-card {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: 5px;
  padding: 0.9rem 1rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.ap-ref-card:hover {
  border-color: var(--ap-navy);
  box-shadow: 0 2px 10px rgba(11,60,93,0.10);
  transform: translateY(-1px);
  color: inherit;
}

.ap-ref-card__icon {
  font-size: 1.4rem;
  flex-shrink: 0;
  width: 36px;
  text-align: center;
  line-height: 1;
}

.ap-ref-card__body {
  flex: 1;
  min-width: 0;
}

.ap-ref-card__title {
  font-family: var(--ap-font-head);
  font-size: 1.125rem;
  color: var(--ap-navy);
  line-height: 1.2;
  margin-bottom: 0.2rem;
}

.ap-ref-card:hover .ap-ref-card__title {
  color: var(--ap-red);
}

.ap-ref-card__desc {
  font-size: 0.82rem;
  color: var(--ap-ink-light);
  line-height: 1.4;
}

.ap-ref-card__arrow {
  font-family: var(--ap-font-mono);
  font-size: 14px;
  color: var(--ap-rule);
  flex-shrink: 0;
  transition: color 0.15s, transform 0.15s;
}

.ap-ref-card:hover .ap-ref-card__arrow {
  color: var(--ap-navy);
  transform: translateX(3px);
}

@media (max-width: 640px) {
  .ap-ref-grid {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .ap-ref-card {
    padding: 0.75rem 0.9rem;
  }
  .ap-ref-card__desc {
    display: none;
  }
}


/* ─── PATENT LINKS (single padlock page) ─── */
.ap-patent-links {
  background: var(--ap-white);
  border: 1px solid var(--ap-rule);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 1rem;
}

.ap-patent-links__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.9rem 1.1rem;
}

.ap-patent-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  border-radius: 3px;
  font-family: var(--ap-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  border: 1px solid var(--ap-rule);
}

/* Local patent — exists in our database */
.ap-patent-chip--local {
  background: var(--ap-navy);
  color: #fff;
  border-color: var(--ap-navy);
}

.ap-patent-chip--local:hover {
  background: var(--ap-navy-lt);
  color: #fff;
}

/* External patent — links to Google Patents */
.ap-patent-chip--ext {
  background: var(--ap-off-white);
  color: var(--ap-ink-mid);
  border-color: var(--ap-rule);
}

.ap-patent-chip--ext:hover {
  background: var(--ap-white);
  border-color: var(--ap-navy);
  color: var(--ap-navy);
}


/* ─── EXPANDED BREADCRUMB (single padlock page) ─── */
.ap-breadcrumb--expanded {
  background: var(--ap-off-white);
  border-bottom: 2px solid var(--ap-navy);
  padding: 0.85rem 2rem !important;
}

.ap-breadcrumb--expanded .ap-breadcrumb-inner {
  font-size: 16px !important;
  letter-spacing: 0.02em !important;
  gap: 0.6rem !important;
  flex-wrap: wrap;
}

/* The ← Category link — make it stand out as the primary back action */
.ap-breadcrumb-cat {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--ap-navy) !important;
  font-weight: 600;
  font-family: var(--ap-font-mono);
  font-size: 15px !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(11,60,93,0.08);
  padding: 0.3rem 0.75rem;
  border-radius: 3px;
  border: 1px solid rgba(11,60,93,0.2);
  transition: background 0.15s, border-color 0.15s;
  text-decoration: none !important;
}

.ap-breadcrumb-cat:hover {
  background: var(--ap-navy) !important;
  color: #fff !important;
  border-color: var(--ap-navy) !important;
}

.ap-breadcrumb-current {
  color: var(--ap-ink-light);
  font-size: 13px;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .ap-breadcrumb--expanded {
    padding: 0.65rem 1rem !important;
  }
  .ap-breadcrumb--expanded .ap-breadcrumb-inner {
    font-size: 14px !important;
  }
  .ap-breadcrumb-cat {
    font-size: 14px !important;
    padding: 0.3rem 0.6rem;
  }
  .ap-breadcrumb-current {
    display: none; /* title is visible on the page — no need in breadcrumb on mobile */
  }
}

/* ── Detail Notes & Catalog Images ── */
.ap-detail-notes { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--ap-rule); }
.ap-detail-notes__text { font-size: 0.88rem; color: var(--ap-ink-mid); line-height: 1.7; margin-top: 0.4rem; }
.ap-catalog-images { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--ap-rule); }
.ap-catalog-images__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px,1fr)); gap: 0.5rem; margin-top: 0.5rem; }
.ap-catalog-img-link { display: block; border: 1px solid var(--ap-rule); border-radius: 3px; overflow: hidden; transition: border-color 0.15s; }
.ap-catalog-img-link:hover { border-color: var(--ap-navy); }
.ap-catalog-img-link img { width: 100%; height: 80px; object-fit: cover; display: block; }

/* ── Auction seen section ── */
.ap-auction-seen { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--ap-rule); }
.ap-auction-browse-link { display:inline-block; margin-top:.6rem; font-family:var(--ap-font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ap-navy); text-decoration:none; }
.ap-auction-browse-link:hover { color:var(--ap-red); }

/* ── Rarity & Market Value ratings ── */
.ap-ratings-panel { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--ap-rule); display:flex; flex-direction:column; gap:.85rem; }
.ap-rating-row { display:flex; flex-direction:column; gap:.2rem; }
.ap-rating-stars { font-size:1.1rem; color:#c8a000; letter-spacing:2px; line-height:1; }
.ap-rating-label { font-weight:600; color:var(--ap-navy); font-size:.9rem; }
.ap-rating-desc { font-size:.8rem; color:var(--ap-ink-light); }
.ap-rating-price-label { font-family:var(--ap-font-mono); font-size:1.1rem; color:#1a7a3a; font-weight:700; letter-spacing:2px; line-height:1; }
.ap-rating-range { font-weight:600; color:var(--ap-navy); font-size:.9rem; }
.ap-rating-disclaimer { font-size:.75rem; color:var(--ap-ink-light); font-style:italic; line-height:1.4; margin-top:.15rem; }
.ap-rating-na { font-family:var(--ap-font-mono); font-size:1.4rem; color:var(--ap-ink-light); line-height:1; }
.ap-rating-label--na { color:var(--ap-ink-light); font-weight:600; font-size:.9rem; }

/* ── Submit listing welcome callout ── */
.ap-submit-welcome { display:flex; gap:1rem; align-items:flex-start; background:#fdf8ee; border:1px solid #e8d9a0; border-radius:var(--ap-radius); padding:1.1rem 1.25rem; margin-bottom:1.75rem; }
.ap-submit-welcome-icon { font-size:1.75rem; line-height:1; flex-shrink:0; }
.ap-submit-welcome strong { display:block; font-size:1rem; color:var(--ap-navy); margin-bottom:.3rem; }
.ap-submit-welcome p { margin:0; font-size:.9rem; color:var(--ap-ink-mid); line-height:1.6; }
.ap-dim-input-wrap { position:relative; }
.ap-submit-hint { font-size:.8rem; color:var(--ap-ink-light); font-style:italic; margin:.5rem 1.25rem 0; }

/* ── Mobile Action Bar (taxonomy archive pages) ── */
.ap-mob-action-bar { background: var(--ap-white); border-bottom: 1px solid var(--ap-rule); padding: .6rem 1rem; }
.ap-mob-action-bar__row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.ap-mob-count { font-family: var(--ap-font-mono); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ap-ink-mid); }
.ap-mob-action-bar__btns { display: flex; align-items: center; gap: .5rem; }
.ap-mob-btn { display: flex; align-items: center; gap: .35rem; background: var(--ap-off-white); border: 1px solid var(--ap-rule); border-radius: 4px; padding: .4rem .75rem; font-family: var(--ap-font-mono); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ap-ink-mid); cursor: pointer; white-space: nowrap; }
.ap-mob-btn--active { background: var(--ap-navy); color: #fff; border-color: var(--ap-navy); }
.ap-mob-dot { width: 6px; height: 6px; background: var(--ap-red,#8B1A1A); border-radius: 50%; display: inline-block; }
.ap-mob-panel { padding: 1rem; border-top: 1px solid var(--ap-rule); background: var(--ap-off-white); }
.ap-mob-panel[hidden] { display: none !important; }

/* Mobile: show action bar, hide desktop sidebar */
@media (max-width: 900px) {
  .ap-mob-action-bar { display: block; }
  .ap-sidebar { display: none !important; }
  .ap-controls-bar { display: none; }
}

/* Desktop: hide mobile bar, show desktop sidebar */
@media (min-width: 901px) {
  .ap-mob-action-bar { display: none; }
  .ap-sidebar { display: flex !important; }
  .ap-controls-bar { display: flex; }
}
