/* The Shabby Attic — site styles
   British heritage: Heritage Green grounds, flat Antique Gold for type, rules and icons,
   parchment panels for long reading. Mobile first (360px → 1440px). */

/* ------------------------------------------------------------------ fonts
   Self-hosted (no requests to Google). Merriweather, Lobster Two and Cinzel are under the
   SIL Open Font License; see assets/fonts/OFL-*.txt. */
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/cinzel-normal-latin-ext-0.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/cinzel-normal-latin-1.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lobster Two"; font-style: italic; font-weight: 700; font-display: swap; src: url("../fonts/lobster-two-italic-latin-2.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Merriweather"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/merriweather-italic-latin-ext-3.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Merriweather"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/merriweather-italic-latin-4.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/merriweather-normal-latin-ext-5.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/merriweather-normal-latin-6.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/merriweather-normal-latin-ext-5.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/merriweather-normal-latin-6.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 900; font-display: swap; src: url("../fonts/merriweather-normal-latin-ext-5.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 900; font-display: swap; src: url("../fonts/merriweather-normal-latin-6.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ------------------------------------------------------------------ tokens */
:root {
  --heritage-green: #173A2A;
  --deep-forest: #0F241A;
  --card-black-green: #0B160F;
  --van-green: #24573D;
  --antique-gold: #D9B562;
  --pale-gold: #F0D99A;
  --burnished-gold: #A87E32;
  --burnished-dark: #7A5A1F;   /* darkened Burnished Gold: AA on parchment */
  --parchment: #F3EAD3;
  --parchment-deep: #EADDBA;
  --sign-red: #B8372B;
  --cream: #F3EAD3;
  --cream-muted: #D8CDB0;
  --error: #8E2219;
  --gold-leaf: linear-gradient(100deg, #A87E32 0%, #D9B562 22%, #F0D99A 50%, #D9B562 78%, #A87E32 100%);

  --font-head: "Merriweather", Georgia, "Times New Roman", serif;
  --font-body: "Merriweather", Georgia, "Times New Roman", serif;
  --font-script: "Lobster Two", "Brush Script MT", cursive;
  --font-label: "Cinzel", "Trajan Pro", Georgia, serif;

  --header-h: 4.25rem;
  --ticker-h: 0px;
  --gutter: clamp(1rem, 4vw, 2rem);
  --radius: 2px;

  /* theme tokens (overridden per theme / panel) */
  --bg: var(--heritage-green);
  --text: var(--cream);
  --muted: var(--cream-muted);
  --heading: var(--antique-gold);
  --accent: var(--antique-gold);
  --link: var(--pale-gold);
  --rule: rgba(217, 181, 98, .55);
  --card: var(--deep-forest);
  --focus: var(--pale-gold);
}

/* ------------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + var(--ticker-h) + 1rem); }
body {
  margin: 0;
  background: var(--heritage-green);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.7;
  overflow-x: hidden;
}
img, svg, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
main:focus { outline: none; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { font-family: var(--font-head); color: var(--heading); line-height: 1.2; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-weight: 900; font-size: clamp(2rem, 1.4rem + 3vw, 3.25rem); }
h2 { font-weight: 900; font-size: clamp(1.65rem, 1.3rem + 1.8vw, 2.45rem); }
h3 { font-weight: 700; font-size: clamp(1.15rem, 1.05rem + .4vw, 1.35rem); }
address { font-style: normal; }
strong { font-weight: 700; }
:where(ul[role="list"], ol[role="list"]) { list-style: none; margin: 0; padding: 0; }
[id] { scroll-margin-top: calc(var(--header-h) + var(--ticker-h) + 1rem); }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.container { width: 100%; max-width: 75rem; margin-inline: auto; padding-inline: var(--gutter); }
.measure { max-width: 42rem; }

.skip-link {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--antique-gold); color: var(--card-black-green);
  font-family: var(--font-label); font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  padding: .75rem 1.25rem; text-decoration: none;
}
.skip-link:focus { top: .75rem; }

/* ------------------------------------------------------------------ icons */
.icon {
  width: 1.25em; height: 1.25em; flex: none;
  fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  vertical-align: -.2em;
}
.ring {
  display: inline-grid; place-items: center; flex: none;
  width: 3.5rem; height: 3.5rem; border: 2px solid var(--accent); border-radius: 50%;
  color: var(--accent);
}
.ring .icon { width: 1.75rem; height: 1.75rem; }
.ornament {
  display: block; width: 10rem; height: 1.5rem; margin: .5rem auto 1.25rem;
  color: var(--accent); fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round;
}
.ornament--close { margin: 1.5rem auto 0; }

/* ------------------------------------------------------------------ type helpers */
.script {
  font-family: var(--font-script); font-weight: 700; font-style: italic;
  font-size: clamp(1.3rem, 1.1rem + 1vw, 1.85rem); line-height: 1.3;
  color: var(--accent); margin: 0 0 .5rem;
}
.eyebrow, .label {
  font-family: var(--font-label); font-weight: 700; text-transform: uppercase;
  letter-spacing: .18em; font-size: .8rem; color: var(--link); margin: 0 0 .75rem;
}
.label { color: var(--heading); font-size: .85rem; letter-spacing: .14em; }
.label--small { font-size: .72rem; color: var(--muted); }
.with-icon { display: flex; gap: .75rem; align-items: flex-start; }
.with-icon > .icon { color: var(--accent); margin-top: .3em; }

.rich > :last-child { margin-bottom: 0; }
.rich ul, .rich ol { padding-left: 1.25rem; margin: 0 0 1em; }
.rich li { margin-bottom: .35em; }
.rich li::marker { color: var(--accent); }
.rich h3 { margin-top: 1.5em; }
.rich h3:first-child { margin-top: 0; }

/* ------------------------------------------------------------------ frames */
/* Double gold rule like the flyers, with a small gold stud in each inner corner. */
.frame {
  position: relative;
  border: 2px solid var(--accent);
  outline: 1px solid var(--rule);
  outline-offset: -8px;
  background:
    radial-gradient(circle, var(--accent) 2px, transparent 2.5px) 0 0 / 16px 16px no-repeat,
    radial-gradient(circle, var(--accent) 2px, transparent 2.5px) 100% 0 / 16px 16px no-repeat,
    radial-gradient(circle, var(--accent) 2px, transparent 2.5px) 0 100% / 16px 16px no-repeat,
    radial-gradient(circle, var(--accent) 2px, transparent 2.5px) 100% 100% / 16px 16px no-repeat,
    var(--card);
}

/* ------------------------------------------------------------------ buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 2.875rem; padding: .7rem 1.35rem;
  font-family: var(--font-label); font-weight: 700; font-size: .85rem; line-height: 1.2;
  text-transform: uppercase; letter-spacing: .08em; text-decoration: none; text-align: center;
  border: 2px solid var(--antique-gold); border-radius: var(--radius);
  cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn .icon { width: 1.15rem; height: 1.15rem; }
.btn--gold { background: var(--antique-gold); color: var(--card-black-green); }
.btn--gold:hover { background: var(--pale-gold); border-color: var(--pale-gold); }
.btn--outline { background: transparent; color: var(--pale-gold); }
.btn--outline:hover { background: var(--van-green); color: var(--pale-gold); }
.btn--sm { min-height: 2.75rem; padding: .5rem .9rem; font-size: .78rem; }
.btn--lg { min-height: 3.25rem; padding: .85rem 1.75rem; font-size: .95rem; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.btn-row--centre { justify-content: center; }

/* ------------------------------------------------------------------ header */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--deep-forest);
  border-bottom: 3px double var(--antique-gold);
}
.site-header__inner {
  display: flex; align-items: center; gap: .75rem;
  max-width: 82rem; margin-inline: auto; padding: .6rem var(--gutter);
  min-height: var(--header-h);
}
.site-header__brand { flex: 0 1 auto; display: block; margin-right: auto; min-width: 0; }
.site-header__brand img { width: clamp(9.5rem, 30vw, 13.75rem); height: auto; }
.site-header__actions { display: flex; align-items: center; gap: .5rem; flex: none; }
.btn__text { display: inline; }
/* Header Call button: the number is shown from tablet width up and read out by screen readers at every size. */
.btn__num { white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 47.99em) {
  .btn__num { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}

.nav-toggle {
  display: inline-flex; align-items: center; gap: .4rem;
  min-height: 2.75rem; min-width: 2.75rem; padding: .4rem .6rem; justify-content: center;
  background: transparent; color: var(--antique-gold);
  border: 2px solid var(--rule); border-radius: var(--radius);
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
  cursor: pointer;
}
.nav-toggle .icon { width: 1.4rem; height: 1.4rem; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline; }
.nav-toggle__open, .nav-toggle__close { line-height: 0; }

.site-nav { flex-basis: 100%; }
.site-nav__list { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.nav__link {
  display: block; padding: .6rem 0;
  font-family: var(--font-label); font-weight: 700; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--cream); text-decoration: none;
}
.nav__link:hover { color: var(--pale-gold); }
.nav__link[aria-current="page"] { color: var(--antique-gold); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .45em; }
.site-nav__extra { display: none; }

/* No JS: nav shows as a wrapped row under the header bar. With JS: collapsible panel. */
.js .site-header__inner { flex-wrap: nowrap; position: relative; }
.js .site-nav {
  display: none;
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--deep-forest); border-bottom: 3px double var(--antique-gold);
  padding: .5rem var(--gutter) 1.25rem;
  max-height: calc(100vh - var(--header-h) - var(--ticker-h)); overflow-y: auto;
}
.js .site-header.is-open .site-nav { display: block; }
.js .site-nav__list { flex-direction: column; gap: 0; }
.js .site-nav__list li { border-bottom: 1px solid rgba(217, 181, 98, .2); }
.js .nav__link { padding: .85rem 0; font-size: .95rem; }
.js .site-nav__extra { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1rem 0 0; }
.js .site-nav__extra a { color: var(--pale-gold); text-decoration: none; font-weight: 700; display: inline-flex; gap: .5rem; align-items: center; min-height: 2.75rem; }
.site-header__inner { flex-wrap: wrap; }

@media (max-width: 29.99em) {
  .site-header__actions .btn__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .site-header__actions .btn--sm { padding: .5rem .65rem; }
  .nav-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}

@media (min-width: 75em) {
  .site-header__inner, .js .site-header__inner { flex-wrap: nowrap; }
  .site-header__brand { margin-right: 0; }
  .site-nav, .js .site-nav {
    display: block; position: static; flex: 1 1 auto; background: none; border: 0; padding: 0;
    max-height: none; overflow: visible;
  }
  .site-nav__list, .js .site-nav__list { flex-direction: row; justify-content: center; gap: 0 1.15rem; flex-wrap: nowrap; }
  .js .site-nav__list li { border: 0; }
  .nav__link, .js .nav__link { padding: .5rem 0; font-size: .78rem; white-space: nowrap; }
  .site-nav__extra, .js .site-nav__extra { display: none; }
  .nav-toggle { display: none; }
}

/* ------------------------------------------------------------------ hero */
.hero {
  background:
    radial-gradient(ellipse 80% 70% at 50% 0%, rgba(36, 87, 61, .55), transparent 70%),
    radial-gradient(ellipse at center, transparent 55%, rgba(11, 22, 15, .45)),
    var(--heritage-green);
  padding: clamp(1.5rem, 5vw, 3.5rem) 0 clamp(2.5rem, 6vw, 4.5rem);
}
.hero__inner {
  text-align: center; max-width: 60rem; margin-inline: auto;
  padding: clamp(2rem, 6vw, 4rem) clamp(1.25rem, 5vw, 4rem);
  border: 2px solid var(--antique-gold); outline: 1px solid var(--rule); outline-offset: -9px;
}
.hero__logo { width: min(100%, 40rem); margin: 0 auto 1rem; }
.hero--home .hero__script { font-size: clamp(1.6rem, 1.2rem + 2vw, 2.4rem); }
.hero--home h1 { font-size: clamp(1.35rem, 1.1rem + 1.4vw, 2rem); font-weight: 700; color: var(--cream); max-width: 34rem; margin-inline: auto; }
.hero .script { margin-bottom: .25rem; }
.hero__intro { max-width: 40rem; margin: 0 auto; font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); }
.hero .ornament { margin-bottom: 1rem; }

/* ------------------------------------------------------------------ promo banner */
.promo { background: var(--deep-forest); padding: clamp(1.25rem, 3vw, 2rem) 0; }
.promo__panel {
  position: relative; display: grid; gap: 1.25rem; align-items: center; justify-items: center; text-align: center;
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 3rem);
  background:
    radial-gradient(ellipse 70% 120% at 0% 50%, rgba(36, 87, 61, .6), transparent 70%),
    var(--heritage-green);
  border: 2px solid var(--antique-gold); outline: 1px solid var(--rule); outline-offset: -9px;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.promo__panel:hover { border-color: var(--pale-gold); box-shadow: 0 0 0 3px rgba(217, 181, 98, .25); }
.promo__panel:hover .promo__link { background: var(--pale-gold); border-color: var(--pale-gold); }
.promo__panel:hover .promo__link .icon { transform: translateX(4px); }
.promo__badge .ring { width: 3.5rem; height: 3.5rem; }
.promo__badge .ring .icon { width: 1.75rem; height: 1.75rem; }
@media (min-width: 48rem) {
  .promo__badge .ring { width: 5rem; height: 5rem; }
  .promo__badge .ring .icon { width: 2.5rem; height: 2.5rem; }
}
.promo__eyebrow {
  margin: 0 0 .35rem; font-family: var(--font-label); font-weight: 700; font-size: .8rem;
  letter-spacing: .22em; text-transform: uppercase; color: var(--pale-gold);
}
.promo__script { margin: 0 0 .15rem; font-size: clamp(1.5rem, 1.2rem + 1.6vw, 2.3rem); }
.promo__heading { margin: 0 0 .6rem; font-size: clamp(1.45rem, 1.15rem + 1.5vw, 2.15rem); color: var(--cream); }
.promo__text { margin: 0 auto; max-width: 38rem; color: var(--cream); }
.promo__points {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.5rem; margin: 1rem 0 0; padding: 0; list-style: none;
  font-family: var(--font-label); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--pale-gold);
}
.promo__points li { display: inline-flex; align-items: center; gap: .45rem; }
.promo__points .icon { width: 1rem; height: 1rem; color: var(--antique-gold); }
.promo__link .icon { transition: transform .15s ease; }
/* the button's hit area covers the whole banner, so the entire banner is one link */
.promo__link::after { content: ""; position: absolute; inset: 0; }
.promo__link:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
@media (min-width: 48rem) {
  .promo__panel { grid-template-columns: auto minmax(0, 1fr); justify-items: start; text-align: left; gap: 1.5rem 2.5rem; }
  .promo__cta { grid-column: 2; }
  .promo__text { margin: 0; }
  .promo__points { justify-content: flex-start; }
}
@media (min-width: 75rem) {
  .promo__panel { grid-template-columns: auto minmax(0, 1fr) auto; }
  .promo__cta { grid-column: auto; }
}
@media print { .promo { display: none; } }

/* ------------------------------------------------------------------ sections & themes */
.section { padding: clamp(3rem, 8vw, 5.5rem) 0; background: var(--bg); color: var(--text); }
.theme-green { --bg: var(--heritage-green); --card: var(--deep-forest); }
.theme-forest { --bg: var(--deep-forest); --card: var(--heritage-green); }
.theme-parchment { --bg: var(--heritage-green); }
.theme-parchment .sheet {
  --text: var(--heritage-green); --muted: #3D5246; --heading: var(--heritage-green);
  --accent: var(--burnished-dark); --link: var(--burnished-dark); --rule: rgba(122, 90, 31, .5);
  --card: var(--parchment-deep); --focus: var(--heritage-green);
  background: var(--parchment); color: var(--text);
  padding: clamp(1.75rem, 5vw, 3.5rem) clamp(1.25rem, 5vw, 3.5rem);
  border: 2px solid var(--burnished-gold); outline: 1px solid var(--rule); outline-offset: -9px;
  box-shadow: 0 0 0 6px var(--heritage-green), 0 0 0 8px rgba(217, 181, 98, .5);
}
.theme-parchment .btn--outline { color: var(--heritage-green); border-color: var(--burnished-gold); }
.theme-parchment .btn--outline:hover { background: var(--heritage-green); color: var(--pale-gold); border-color: var(--heritage-green); }
.theme-parchment .btn--gold { border-color: var(--burnished-gold); }

.section-head { margin-bottom: clamp(2rem, 4vw, 3rem); }
.section-head--centre { text-align: center; max-width: 48rem; margin-inline: auto; }
.section-head h2 { margin-bottom: .35rem; }
.section-head .ornament { margin-bottom: 1rem; }
.section-head__intro { color: var(--text); max-width: 42rem; margin-inline: auto; }
.section-head:not(.section-head--centre) .ornament { margin-left: 0; }
.block-note { text-align: center; margin: 2rem auto 0; max-width: 40rem; }

/* text block */
.text-block { display: grid; gap: 2rem; }
.text-block:not(.text-block--aside) .rich { margin-inline: auto; }
.text-block .rich p, .text-block .rich li { font-size: 1.0625rem; }
.aside-panel {
  --text: var(--cream); --heading: var(--antique-gold); --accent: var(--antique-gold);
  --link: var(--pale-gold); --rule: rgba(217, 181, 98, .55); --card: var(--deep-forest); --focus: var(--pale-gold);
  color: var(--text); padding: 1.75rem 1.5rem; align-self: start;
}
.theme-forest .aside-panel { --card: var(--card-black-green); }
.aside-panel h3 { font-size: 1.15rem; }
@media (min-width: 56em) {
  .text-block--aside { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
}

/* trust strip */
.trust-strip {
  background: var(--deep-forest);
  border-block: 1px solid var(--rule);
  padding: 1.75rem 0;
}
.trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
.trust li {
  display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center;
  font-family: var(--font-label); font-weight: 700; text-transform: uppercase; letter-spacing: .1em;
  font-size: .8rem; color: var(--antique-gold);
}
@media (min-width: 50em) {
  .trust { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trust li + li { border-left: 1px solid var(--rule); }
}

/* cards */
.cards { display: grid; gap: 1.5rem; }
.card { padding: 2.25rem 1.5rem 2rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
.card .ring { margin-bottom: 1rem; }
.card h3 { margin-bottom: .5rem; }
.card p { color: var(--text); margin-bottom: 1rem; }
.card__link {
  margin-top: auto; display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--font-label); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--link); text-decoration: none; padding: .5rem 0; min-height: 2.75rem;
}
.card__link:hover { text-decoration: underline; }
.card__link .icon { transition: transform .15s ease; }
.card__link:hover .icon { transform: translateX(3px); }
@media (min-width: 44em) {
  .cards--2, .cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 60em) {
  .cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 70em) {
  .cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* category grid (home) */
.cat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.cat-tile {
  display: flex; flex-direction: column; align-items: center; gap: .5rem; height: 100%;
  padding: 1.5rem .75rem; text-align: center; text-decoration: none; color: var(--text);
  border: 1px solid var(--rule); background: var(--card);
  transition: background-color .15s ease, border-color .15s ease;
}
.cat-tile:hover { background: var(--van-green); border-color: var(--antique-gold); }
.cat-tile__title { font-weight: 900; color: var(--heading); font-size: 1.05rem; line-height: 1.25; }
.cat-tile__text { font-size: .875rem; color: var(--muted); line-height: 1.5; }
.cat-tile:hover .cat-tile__text { color: var(--cream); }
@media (min-width: 44em) { .cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 70em) { .cat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* category detail (what we buy) */
.jump { margin-bottom: 2.5rem; }
.jump ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.jump a {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: .4rem 1rem;
  border: 1px solid var(--rule); border-radius: 2rem;
  font-family: var(--font-label); font-weight: 700; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--pale-gold); text-decoration: none;
}
.jump a:hover { background: var(--van-green); border-color: var(--antique-gold); }
.cat-list { display: grid; gap: 1.5rem; }
.cat-list > .jump { grid-column: 1 / -1; }
.cat-detail { padding: 2rem 1.5rem; }
.cat-detail__head { display: flex; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.cat-detail__head h3 { margin: 0 0 .15rem; font-size: 1.4rem; font-weight: 900; }
.cat-detail__summary { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.5; }
.cat-detail .label--small { margin-top: 1.25rem; }
.tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.tags li {
  border: 1px solid var(--rule); border-radius: 2rem; padding: .2rem .8rem;
  font-size: .85rem; color: var(--cream);
}
.cat-detail__ask { margin: 1.25rem 0 0; }
.cat-detail__ask a { display: inline-flex; gap: .5rem; align-items: center; font-weight: 700; min-height: 2.75rem; }
@media (min-width: 60em) { .cat-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* we don't buy sign */
.dont-buy {
  display: flex; flex-direction: column; align-items: center; gap: 1.25rem; text-align: center;
  max-width: 54rem; margin-inline: auto; padding: 2rem 1.5rem;
  background: var(--card-black-green);
  border: 4px double var(--antique-gold);
}
.dont-buy__icon { width: 5.5rem; height: 5.5rem; color: var(--antique-gold); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.dont-buy__title {
  font-weight: 900; text-transform: uppercase; letter-spacing: .04em;
  font-size: clamp(1.8rem, 1.4rem + 2vw, 2.6rem); margin-bottom: .35rem; color: var(--antique-gold);
}
.dont-buy__list { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem 0; margin-bottom: 1rem !important; }
.dont-buy__list li { font-weight: 700; font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem); color: var(--pale-gold); }
.dont-buy__list li + li::before { content: "•"; color: var(--antique-gold); margin: 0 .75rem; }
.dont-buy__note { color: var(--cream); font-size: .975rem; }
.dont-buy__note a { color: var(--pale-gold); }
@media (min-width: 48em) {
  .dont-buy { flex-direction: row; text-align: left; padding: 2rem 2.5rem; gap: 2rem; }
  .dont-buy__list { justify-content: flex-start; }
  .dont-buy__icon { width: 7rem; height: 7rem; }
}

/* compare */
.compare { display: grid; gap: 1.5rem; max-width: 64rem; margin-inline: auto; }
.compare__col { padding: 2rem 1.5rem; }
.compare__col h3 { font-family: var(--font-label); text-transform: uppercase; letter-spacing: .1em; font-size: 1rem; text-align: center; margin-bottom: 1.25rem; }
.compare__col ul { display: grid; gap: 1rem; }
.compare__col li { display: grid; grid-template-columns: 1.5rem 1fr; gap: .75rem; align-items: start; }
.compare__col li .icon { color: var(--antique-gold); width: 1.4rem; height: 1.4rem; margin-top: .2rem; }
.compare__col--us strong { color: var(--heading); }
.compare__col--them { border: 1px dashed rgba(216, 205, 176, .45); color: var(--muted); }
.compare__col--them h3 { color: var(--muted); }
.compare__col--them strong { color: var(--cream); font-weight: 700; }
.dash { display: block; width: .9rem; height: 2px; background: var(--muted); margin: .8rem 0 0 .3rem; }
@media (min-width: 50em) { .compare { grid-template-columns: 1.1fr 1fr; align-items: stretch; } }

.table-wrap { overflow-x: auto; border: 2px solid var(--antique-gold); background: var(--card); }
.table-wrap:focus-visible { outline-offset: 2px; }
.compare-table { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: .975rem; }
.compare-table th, .compare-table td { padding: 1rem 1.1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
.compare-table tbody tr:last-child > * { border-bottom: 0; }
.compare-table thead th {
  font-family: var(--font-label); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem;
  color: var(--antique-gold); background: var(--card-black-green);
}
.compare-table thead td { background: var(--card-black-green); }
.compare-table thead th:nth-child(3) { color: var(--muted); }
.compare-table tbody th { font-family: var(--font-label); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pale-gold); width: 24%; }
.compare-table td:nth-child(2) { color: var(--cream); font-weight: 700; background: rgba(217, 181, 98, .07); }
.compare-table td:nth-child(3) { color: var(--muted); }
.compare-table__yes { color: var(--antique-gold); margin-right: .45rem; }

/* steps */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; counter-reset: none; }
.step { text-align: center; padding: 0 .5rem; }
.step__num {
  display: inline-grid; place-items: center; width: 3.75rem; height: 3.75rem; margin-bottom: 1rem;
  border: 2px solid var(--accent); border-radius: 50%; outline: 1px solid var(--rule); outline-offset: 3px;
  font-family: var(--font-label); font-weight: 700; font-size: 1.15rem; color: var(--accent);
}
.step p { color: var(--text); margin: 0; }
@media (min-width: 44em) { .steps--2, .steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 60em) { .steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 70em) { .steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* checklist */
.checklist-block { display: grid; gap: 2rem; align-items: start; }
.checklist { display: grid; gap: .85rem; padding: 2rem 1.5rem; }
.checklist li { display: grid; grid-template-columns: 1.5rem 1fr; gap: .75rem; align-items: start; color: var(--text); }
.checklist .icon { color: var(--accent); width: 1.35rem; height: 1.35rem; margin-top: .2rem; }
@media (min-width: 56em) {
  .checklist-block { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3rem; }
  .checklist-block > .checklist:only-child { grid-column: 1 / -1; max-width: 40rem; margin-inline: auto; width: 100%; }
}

/* statement */
.statement { text-align: center; max-width: 46rem; margin-inline: auto; }
.statement .script { font-size: clamp(1.5rem, 1.2rem + 1.6vw, 2.3rem); }
.statement__heading { font-size: clamp(1.8rem, 1.4rem + 2vw, 2.75rem); }
.statement__text { font-size: 1.125rem; color: var(--text); margin: 0 auto; max-width: 38rem; }

/* FAQ */
.faq-list { max-width: 52rem; margin-inline: auto; border-top: 1px solid var(--rule); }
.faq { border-bottom: 1px solid var(--rule); }
.faq summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 1.15rem 3.25rem 1.15rem 0; font-weight: 700; font-size: 1.075rem; color: var(--cream); line-height: 1.45;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%);
  width: 2rem; height: 2rem; border: 2px solid var(--antique-gold); border-radius: 50%;
  display: grid; place-items: center; color: var(--antique-gold);
  font-family: var(--font-label); font-size: 1.15rem; line-height: 1;
}
.faq[open] summary::after { content: "–"; }
.faq summary:hover { color: var(--pale-gold); }
.faq__answer { padding: 0 3rem 1.25rem 0; color: var(--text); }

/* forms */
.form-layout { display: grid; gap: 2rem; }
@media (min-width: 60em) { .form-layout--aside { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); align-items: start; } }
.form-panel {
  --text: var(--heritage-green); --heading: var(--heritage-green); --link: var(--burnished-dark);
  --accent: var(--burnished-dark); --focus: var(--heritage-green); --muted: #3D5246;
  background: var(--parchment); color: var(--text);
  padding: clamp(1.5rem, 5vw, 2.5rem);
  border: 2px solid var(--burnished-gold); outline: 1px solid rgba(122, 90, 31, .5); outline-offset: -8px;
}
.form-layout:not(.form-layout--aside) .form-panel { max-width: 46rem; margin-inline: auto; width: 100%; }
.enquiry-form { display: grid; gap: 1.25rem; }
.field { display: grid; gap: .35rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.field-pair { display: grid; gap: 1.25rem; }
@media (min-width: 40em) { .field-pair { grid-template-columns: 1fr 1fr; } .field--short { max-width: 16rem; } }
.enquiry-form label, .enquiry-form legend { font-weight: 700; font-size: .975rem; color: var(--heritage-green); }
.enquiry-form legend { padding: 0; margin-bottom: .35rem; }
.req, .opt { font-weight: 400; font-size: .85rem; color: #3D5246; }
.enquiry-form input[type="text"], .enquiry-form input[type="tel"], .enquiry-form input[type="email"], .enquiry-form textarea {
  width: 100%; font: inherit; font-size: 1rem; line-height: 1.5; color: #102419;
  background: #FFFDF7; border: 2px solid #6B5A35; border-radius: var(--radius);
  padding: .7rem .8rem; min-height: 2.875rem;
}
.enquiry-form textarea { resize: vertical; }
.enquiry-form input:focus-visible, .enquiry-form textarea:focus-visible { outline: 3px solid var(--heritage-green); outline-offset: 2px; border-color: var(--heritage-green); }
.enquiry-form [aria-invalid="true"] { border-color: var(--error); box-shadow: inset 4px 0 0 var(--error); }
.field-hint { margin: 0; font-size: .875rem; color: #3D5246; line-height: 1.5; }
.field-error { margin: 0; font-size: .9rem; font-weight: 700; color: var(--error); }
.field-error::before { content: "! "; }
.field-error[hidden] { display: none; }
.choice-row { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.choice { display: inline-flex; align-items: center; gap: .5rem; font-weight: 400 !important; min-height: 2.75rem; cursor: pointer; }
.choice input { width: 1.25rem; height: 1.25rem; accent-color: var(--heritage-green); flex: none; margin: 0; }
.choice--consent { align-items: flex-start; gap: .75rem; line-height: 1.5; }
.choice--consent input { margin-top: .2rem; }
.form-photo-tip {
  display: flex; gap: .75rem; align-items: flex-start; margin: 0;
  padding: .9rem 1rem; background: var(--parchment-deep); border-left: 4px solid var(--burnished-gold);
  font-size: .925rem; line-height: 1.55;
}
.form-photo-tip .icon { color: var(--heritage-green); margin-top: .15rem; }
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.error-summary {
  border: 3px solid var(--error); background: #FBEDEA; padding: 1rem 1.25rem; color: #3B0E0A;
}
.error-summary h2 { color: var(--error); font-size: 1.2rem; margin-bottom: .5rem; }
.error-summary ul { margin: 0; padding-left: 1.25rem; }
.error-summary a { color: var(--error); font-weight: 700; }
.form-notice {
  border: 3px solid var(--heritage-green); background: #EEF4EC; padding: 1rem 1.25rem; color: #14301E; margin-bottom: 1.5rem;
}
.form-notice h2 { color: var(--heritage-green); font-size: 1.2rem; margin-bottom: .5rem; }
.form-notice a { color: var(--heritage-green); font-weight: 700; }
.enquiry-form .btn { justify-self: start; }
.notice-panel { max-width: 46rem; margin-inline: auto; text-align: center; }

/* roadshows */
.events { display: grid; gap: 1.5rem; }
.event { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; padding: 1.75rem 1.5rem; }
.event__date { margin: 0; }
.event__date time {
  display: grid; place-items: center; width: 4.75rem; height: 4.75rem;
  border: 2px solid var(--antique-gold); border-radius: 50%; text-align: center; line-height: 1;
}
.event__day { font-family: var(--font-head); font-weight: 900; font-size: 1.6rem; color: var(--antique-gold); display: block; }
.event__month { font-family: var(--font-label); font-weight: 700; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pale-gold); display: block; margin-top: -.6rem; }
.event__body h3 { margin-bottom: .25rem; }
.event__when { font-weight: 700; color: var(--pale-gold); margin-bottom: .5rem; }
.event__body p { margin-bottom: .5rem; }
@media (min-width: 60em) { .events { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.events-past { margin-top: clamp(2.5rem, 6vw, 4rem); }
.events-past__title { text-align: center; margin-bottom: 1.5rem; }
.event__map { grid-column: 1 / -1; margin: .25rem 0 0; }
.event__map-link { position: relative; display: block; border: 2px solid var(--accent); line-height: 0; }
.event__map-link img { width: 100%; aspect-ratio: 25 / 14; object-fit: cover; }
.event__map-cta {
  position: absolute; right: .75rem; bottom: .75rem; display: inline-flex; align-items: center; gap: .45rem; line-height: 1.2;
  padding: .5rem .85rem; background: var(--antique-gold); color: var(--card-black-green); border: 2px solid var(--card-black-green);
  font-family: var(--font-label); font-weight: 700; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
}
.event__map-cta .icon { width: 1rem; height: 1rem; }
@media (min-width: 60em) {
  /* A lone upcoming date gets the full width, with the map beside the details. */
  .events > .event:only-child { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.15fr); }
  .events > .event:only-child .event__map { grid-column: 3; grid-row: 1; align-self: start; margin: 0; }
}
.event__map-link:hover .event__map-cta, .event__map-link:focus-visible .event__map-cta { background: var(--pale-gold); }
.event__map figcaption { margin-top: .4rem; font-size: .75rem; color: var(--muted); text-align: right; }
.event__map figcaption a { color: var(--muted); }
.event--past { opacity: .8; }
.event--past .event__when { color: var(--muted); }
.empty-state { max-width: 42rem; margin-inline: auto; text-align: center; padding: 2.5rem 1.75rem; }
.empty-state .ring { margin-bottom: 1rem; }

/* latest finds */
.finds { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.find { margin: 0; padding: 10px; height: 100%; }
.find img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.find figcaption { padding: 1rem .5rem .5rem; text-align: center; }
.find__title { display: block; font-weight: 900; color: var(--heading); font-size: 1.05rem; margin-bottom: .25rem; }
.find figcaption p { font-size: .925rem; color: var(--muted); margin: 0; }

/* socials */
.social__text { font-family: var(--font-head); font-weight: 700; font-size: .8rem; letter-spacing: -.01em; line-height: 1; text-transform: none; }
.socials { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0; }
.socials--centre { justify-content: center; margin-top: 2rem; }
.socials--centre .label { margin: 0; }
.social {
  display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem;
  border: 2px solid var(--antique-gold); border-radius: 50%; color: var(--antique-gold);
}
.social:hover { background: var(--van-green); color: var(--pale-gold); }

/* visit */
.visit { display: grid; gap: 1.5rem; }
.visit__details { padding: 2rem 1.75rem; }
.visit__details .with-icon { margin-bottom: 1.25rem; }
.visit__details .rich { margin-bottom: 1.25rem; }
.visit__photo { margin: 0 0 1.5rem; }
.visit__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--rule); }
.visit__map { padding: 10px; min-height: 22rem; display: flex; }
.map-consent { position: relative; flex: 1; min-height: 22rem; display: flex; overflow: hidden; background: var(--deep-forest); }
.map-consent__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-consent__overlay {
  position: relative; margin: auto 1rem 2.75rem; align-self: flex-end; width: 100%;
  display: flex; flex-direction: column; align-items: center; gap: .5rem; text-align: center;
}
.map-consent__note {
  margin: 0; padding: .3rem .75rem; background: rgba(11, 22, 15, .85); color: var(--cream);
  font-size: .85rem; border-radius: 2px;
}
.map-consent__credit {
  position: absolute; right: 0; bottom: 0; margin: 0; padding: .2rem .5rem;
  background: rgba(243, 234, 211, .9); color: #173A2A; font-size: .72rem;
}
.map-consent__credit a { color: #173A2A; }
.map-consent__frame { width: 100%; min-height: 22rem; border: 0; flex: 1; }
/* Google reviews: cards filled in by site.js from google-reviews.php; the whole section stays hidden until they arrive. */
.block-google_reviews { display: none; }
.block-google_reviews.is-live { display: block; }
.g-reviews__summary { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: .6rem; margin: 0 0 1.5rem; font-size: 1.05rem; }
.g-reviews__score { font-family: var(--font-head); font-size: 2rem; font-weight: 700; color: var(--antique-gold); }
.g-reviews__stars { color: var(--antique-gold); letter-spacing: .15em; font-size: 1.3rem; }
.g-reviews__list { display: grid; gap: 1.25rem; margin-bottom: 1.75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.g-review { display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: 1.15rem 1.15rem 1rem; background: var(--parchment); color: #0B160F; border: 2px solid var(--antique-gold); }
.g-review__stars { margin: 0; color: var(--burnished-dark); letter-spacing: .15em; font-size: 1.1rem; }
.g-review__text { margin: 0; font-size: .95rem; line-height: 1.55; white-space: pre-line; }
.g-review__who { margin-top: auto; font-family: var(--font-label); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--burnished-dark); }
.g-reviews__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .85rem; margin: 0 0 1rem; }
.g-reviews__credit { margin: 0; text-align: center; font-size: .8rem; color: var(--cream-muted); }
/* Facebook posts: cards filled in by site.js from facebook-feed.php; just the Follow button until they arrive. */
.block-facebook_feed { display: none; }   /* shown once posts have loaded (site.js adds .is-live) */
.block-facebook_feed.is-live { display: block; }
.fb-feed__list { display: none; }
.fb-feed--loaded .fb-feed__list {
  display: grid; gap: 1.25rem; margin-bottom: 1.75rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}
.fb-feed__follow { margin: 0; text-align: center; }
.fb-post {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--parchment); color: #0B160F; border: 2px solid var(--antique-gold);
}
.fb-post img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fb-post__body { display: flex; flex-direction: column; gap: .5rem; padding: 1rem; flex: 1; }
.fb-post__date { font-family: var(--font-label); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--burnished-dark); }
.fb-post__text {
  margin: 0; font-size: .95rem; line-height: 1.5; white-space: pre-line;
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}
.fb-post__link { margin-top: auto; color: var(--burnished-dark); font-weight: 700; }
.fb-post__link:hover, .fb-post__link:focus-visible { color: #0B160F; }
@media (min-width: 56em) { .visit--map { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); } }
.contact-list { display: grid; gap: .25rem; margin: 0 0 1.25rem !important; }
.contact-list a {
  display: inline-flex; align-items: center; gap: .75rem; min-height: 2.75rem;
  color: var(--cream); text-decoration: none; font-weight: 700;
}
.contact-list a:hover { color: var(--pale-gold); text-decoration: underline; }
.contact-list .icon { color: var(--antique-gold); }

/* CTA band */
.cta-band { background: var(--heritage-green); padding: clamp(3rem, 7vw, 5rem) 0; }
.cta-band__panel { --card: var(--card-black-green); text-align: center; padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 3rem); }
.cta-band__panel .ornament { margin-top: 0; }
.cta-band__panel h2 { margin-bottom: .75rem; }
.cta-band__text { max-width: 40rem; margin: 0 auto; }

/* footer */
.site-footer { background: var(--deep-forest); border-top: 3px double var(--antique-gold); color: var(--cream); padding-top: clamp(2.5rem, 6vw, 4rem); }
.site-footer__grid { display: grid; gap: 2.5rem; padding-bottom: 2.5rem; }
.site-footer__brand { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1rem; }
.site-footer__roundel { width: 8rem; height: 8rem; border-radius: 50%; object-fit: cover; }
.site-footer__strap { margin: 0; }
.site-footer__col .label { font-size: .8rem; margin-bottom: 1rem; }
.site-footer__col p { font-size: .95rem; }
.site-footer__col .with-icon > .icon { color: var(--antique-gold); }
.footer-nav { display: grid; gap: 0; }
.footer__link { display: inline-flex; align-items: center; min-height: 2.5rem; color: var(--cream); text-decoration: none; font-size: .95rem; }
.footer__link:hover { color: var(--pale-gold); text-decoration: underline; }
.footer__link[aria-current="page"] { color: var(--antique-gold); font-weight: 700; }
.footer__link--arrow::after { content: "→"; margin-left: .4rem; color: var(--antique-gold); }
.site-footer__base { border-top: 1px solid var(--rule); background: var(--card-black-green); padding: 1rem 0; font-size: .85rem; }
.site-footer__base-inner { display: flex; flex-wrap: wrap; gap: .5rem 2rem; align-items: center; justify-content: space-between; }
.site-footer__base p { margin: 0; color: var(--muted); }
.site-footer__tagline { font-family: var(--font-label); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .72rem; color: var(--antique-gold) !important; }
.legal-nav { display: flex; gap: 1rem; }
.legal-nav .footer__link { font-size: .85rem; min-height: 2.75rem; }
@media (min-width: 44em) { .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64em) {
  .site-footer__grid { grid-template-columns: 1.15fr 1fr 1fr .9fr; }
  .site-footer__brand { align-items: flex-start; text-align: left; }
}

/* the "Discreet & Friendly Service" ribbon: one of only two places the gold-leaf gradient is used */
.ribbon { margin: 0; }
.ribbon span {
  display: inline-block; position: relative;
  padding: .55rem 1.75rem;
  background: var(--gold-leaf); color: var(--card-black-green);
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
  white-space: nowrap;
  clip-path: polygon(0 0, 100% 0, calc(100% - .7rem) 50%, 100% 100%, 0 100%, .7rem 50%);
}

/* ------------------------------------------------------------------ motion & print */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
  .site-header, .cta-band, .nav-toggle, .visit__map, .btn-row { display: none !important; }
  body, .section, .site-footer { background: #fff !important; color: #000 !important; }
  h1, h2, h3 { color: #000 !important; }
}

/* ------------------------------------------------------------------ small-screen refinements */
@media (max-width: 47.99em) {
  .dont-buy__list { flex-direction: column; align-items: center; gap: .15rem; }
  .dont-buy__list li + li::before { content: none; }
}
@media (max-width: 29.99em) {
  .btn-row { flex-direction: column; align-items: stretch; }
  .btn-row--centre { max-width: 20rem; margin-inline: auto; }
  .btn-row .btn { width: 100%; }
}

/* ------------------------------------------------------------------ price ticker (inside the sticky header) */
:root:has(.price-ticker) { --ticker-h: 2.7rem; }
/* Lined up with the header row: starts under the logo, ends under the WhatsApp button. */
.price-ticker { max-width: 82rem; margin-inline: auto; padding: 0 var(--gutter) .6rem; }
.price-ticker__inner {
  display: flex; align-items: stretch; height: 2.1rem; overflow: hidden;
  background: var(--card-black-green); border: 1px solid rgba(217, 181, 98, .45);
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
}
.price-ticker__label {
  flex: none; display: flex; align-items: center; margin: 0; padding: 0 .9rem;
  background: var(--antique-gold); color: var(--card-black-green);
  clip-path: polygon(0 0, 100% 0, calc(100% - .55rem) 50%, 100% 100%, 0 100%);
  padding-right: 1.3rem;
}
.price-ticker__viewport {
  flex: 1; min-width: 0; overflow: hidden; display: flex; align-items: center;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 1.5rem, #000 calc(100% - 1.5rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 1.5rem, #000 calc(100% - 1.5rem), transparent);
}
.price-ticker__track { display: flex; width: max-content; animation: price-ticker 32s linear infinite; }
.price-ticker__group { display: flex; flex: none; }
.price-ticker__group li { display: flex; align-items: baseline; gap: .4rem; padding: 0 1.4rem; white-space: nowrap; color: var(--cream); text-transform: none; letter-spacing: .06em; font-size: .85rem; }
.price-ticker .visually-hidden { text-transform: none; }
.price-ticker__group li + li { border-left: 1px solid rgba(217, 181, 98, .35); }
.price-ticker__price { color: var(--pale-gold); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.price-ticker__unit { color: var(--cream-muted); text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-weight: 400; }
.price-ticker__inner:hover .price-ticker__track,
.price-ticker__inner:focus-within .price-ticker__track,
.price-ticker.is-paused .price-ticker__track { animation-play-state: paused; }
.price-ticker__toggle {
  flex: none; display: none; place-items: center; width: 2.75rem; padding: 0;
  background: transparent; color: var(--antique-gold); border: 0; border-left: 1px solid rgba(217, 181, 98, .35); cursor: pointer;
}
.js .price-ticker__toggle { display: grid; }
.price-ticker__toggle .icon { width: 1rem; height: 1rem; }
.price-ticker__toggle:hover { background: var(--van-green); color: var(--pale-gold); }
.price-ticker__toggle:focus-visible { outline-offset: -3px; }
.price-ticker__play, .price-ticker__toggle[aria-pressed="true"] .price-ticker__pause { display: none; }
.price-ticker__toggle[aria-pressed="true"] .price-ticker__play { display: inline; }
.price-ticker__pause, .price-ticker__play { line-height: 0; }
@keyframes price-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .price-ticker__track { animation: none; }
  .price-ticker__track > .price-ticker__group + .price-ticker__group { display: none; }
  .price-ticker__viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
  .js .price-ticker__toggle { display: none; }
}

/* ------------------------------------------------------------------ gold & silver price board (every page) */
/* Echoes the shop's A-board: flip-number tiles on a dark panel. */
.price-board { background: var(--heritage-green); padding: clamp(2.5rem, 6vw, 4rem) 0; }
.price-board + .cta-band { padding-top: 0; }
.price-board__panel {
  display: grid; gap: 1.75rem; align-items: start;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--card-black-green);
  border: 2px solid var(--antique-gold); outline: 1px solid var(--rule); outline-offset: -8px;
}
.price-board__intro h2 { margin-bottom: .35rem; }
.price-board__updated {
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--pale-gold); margin-bottom: .75rem;
}
.price-board__lede { color: var(--cream); margin: 0; max-width: 28rem; }
.price-board__list { margin: 0; display: grid; gap: .6rem; }
.price-board__row {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .45rem .5rem .45rem 1rem; background: #050B07; border: 1px solid rgba(217, 181, 98, .35);
}
.price-board__row dt { font-weight: 700; font-size: clamp(1rem, .95rem + .3vw, 1.15rem); color: var(--cream); }
.price-board__row dd { margin: 0; }
.price-board__tile {
  display: inline-block; min-width: 6.5rem; text-align: right;
  padding: .3rem .65rem; border-radius: 3px;
  font-family: var(--font-label); font-weight: 700; font-size: clamp(1.15rem, 1.05rem + .5vw, 1.45rem);
  font-variant-numeric: tabular-nums; letter-spacing: .04em; color: #FFFFFF;
  background: linear-gradient(180deg, #1C2620 0 49%, #0A0F0C 51% 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 0 1px 0 rgba(0, 0, 0, .6);
}
.price-board__foot { grid-column: 1 / -1; border-top: 1px solid var(--rule); padding-top: 1rem; display: grid; gap: .5rem; }
.price-board__note { margin: 0; font-size: .875rem; line-height: 1.6; color: var(--cream-muted); }
.price-board__more { margin: 0; }
.price-board__more a { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; font-weight: 700; }
@media (min-width: 56em) {
  .price-board__panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 2.5rem; }
}

/* Only one page live: hide the mobile menu (the logo links home). */
@media (max-width: 74.99em) {
  .site-header--single .nav-toggle, .js .site-header--single .site-nav { display: none; }
}

/* ------------------------------------------------------------------ staging-only labels */
.staging-flag {
  margin: 0; padding: .55rem var(--gutter); text-align: center;
  background: #FBEDEA; color: #3B0E0A; border-block: 2px solid var(--error);
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
}
.staging-hidden { outline: 3px dashed var(--error); outline-offset: -3px; }

/* ------------------------------------------------------------------ online valuation request */
.form-part { display: grid; gap: 1.25rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.form-part + .form-part { padding-top: 1.75rem; border-top: 1px solid rgba(122, 90, 31, .45); }
.enquiry-form legend.form-part__title {
  display: flex; align-items: center; gap: .65rem; margin-bottom: .5rem;
  font-family: var(--font-head); font-size: 1.35rem; color: var(--heritage-green);
}
.form-part__num {
  display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: none;
  border-radius: 50%; background: var(--heritage-green); color: var(--pale-gold);
  font-family: var(--font-label); font-size: .95rem;
}
.items { display: grid; gap: 1.25rem; }
.item-card {
  display: grid; gap: 1rem; margin: 0; min-width: 0;
  padding: 1.25rem; background: #FFFDF7; border: 2px solid var(--burnished-gold); border-radius: var(--radius);
}
.enquiry-form legend.item-card__title {
  padding: .1rem .6rem; margin: 0; background: var(--heritage-green); color: var(--pale-gold);
  font-family: var(--font-label); font-size: .9rem; letter-spacing: .06em; text-transform: uppercase;
}
.item-card__remove { justify-self: start; }
.enquiry-form .item-card .btn--outline, .enquiry-form .items-actions .btn--outline { color: var(--heritage-green); border-color: var(--burnished-gold); }
.enquiry-form .item-card .btn--outline:hover, .enquiry-form .items-actions .btn--outline:hover { background: var(--heritage-green); color: var(--pale-gold); border-color: var(--heritage-green); }
.items-actions { display: grid; gap: .5rem; }
.items-actions[hidden] { display: none; }
.add-item:disabled { opacity: .5; cursor: not-allowed; }
.file-input {
  width: 100%; font: inherit; font-size: .95rem; color: #102419;
  padding: .6rem; background: var(--parchment); border: 2px dashed #6B5A35; border-radius: var(--radius);
}
.file-input::file-selector-button {
  margin-right: .75rem; padding: .55rem .9rem; cursor: pointer;
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase;
  background: var(--heritage-green); color: var(--pale-gold); border: 0; border-radius: var(--radius);
}
.file-input:focus-visible { outline: 3px solid var(--heritage-green); outline-offset: 2px; }
.file-list { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; gap: .5rem; }
.file-list[hidden] { display: none; }
.file-list__item {
  display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) auto; align-items: center; gap: .75rem;
  padding: .4rem; background: var(--parchment); border: 1px solid rgba(122, 90, 31, .45);
}
.file-list__thumb { width: 3.5rem; height: 3.5rem; object-fit: cover; display: grid; place-items: center; }
.file-list__thumb--video, .file-list__thumb--photo {
  background: var(--heritage-green); color: var(--pale-gold);
  font-family: var(--font-label); font-size: .7rem; text-transform: uppercase; letter-spacing: .05em;
}
.file-list__name { font-size: .9rem; overflow-wrap: anywhere; }
.file-list__remove {
  font: inherit; font-size: .85rem; font-weight: 700; color: var(--error); background: none;
  border: 0; padding: .5rem; min-height: 2.75rem; cursor: pointer; text-decoration: underline;
}
.upload-progress { display: grid; gap: .4rem; }
.upload-progress[hidden] { display: none; }
.upload-progress__label { margin: 0; font-weight: 700; }
.upload-progress progress { width: 100%; height: .9rem; accent-color: var(--heritage-green); }
.enquiry-form [type="submit"]:disabled { opacity: .7; cursor: progress; }

/* ------------------------------------------------------------------ admin page (admin.php) */
.admin-panel { color: var(--heritage-green); }
.admin-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.admin-bar .btn--outline, .admin-panel .btn--outline { color: var(--heritage-green); border-color: var(--burnished-gold); }
.admin-title { margin: 0; font-size: clamp(1.5rem, 4vw, 2rem); }
.admin-logout { margin: 0; }
.admin-head { margin-bottom: 1.5rem; }
.admin-head h1 { margin: .25rem 0 .5rem; font-size: clamp(1.6rem, 4vw, 2.2rem); }
.admin-alert { padding: .9rem 1rem; background: var(--parchment-deep); border-left: 4px solid var(--burnished-gold); margin: 0 0 1.25rem; }
.admin-alert--error { border-left-color: var(--error); color: #3B0E0A; background: #FBEDEA; }
.admin-code { white-space: pre-wrap; overflow-wrap: anywhere; background: #FFFDF7; padding: .75rem; border: 1px solid #6B5A35; font-size: .85rem; }
.admin-form { max-width: 32rem; margin-bottom: 1.5rem; }
.admin-form input[type="password"], .admin-form select, .admin-search input {
  width: 100%; font: inherit; font-size: 1rem; color: #102419; background: #FFFDF7;
  border: 2px solid #6B5A35; border-radius: var(--radius); padding: .6rem .75rem; min-height: 2.875rem;
}
.admin-delete { padding-top: 1rem; border-top: 1px solid rgba(122, 90, 31, .45); }
.admin-search { display: flex; gap: .5rem; margin-bottom: 1rem; max-width: 36rem; }
.admin-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.admin-tab {
  padding: .45rem .8rem; border: 1px solid var(--burnished-gold); color: var(--heritage-green);
  text-decoration: none; font-size: .9rem; border-radius: var(--radius);
}
.admin-tab.is-current { background: var(--heritage-green); color: var(--pale-gold); border-color: var(--heritage-green); }
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.admin-table th, .admin-table td { text-align: left; vertical-align: top; padding: .75rem .6rem; border-bottom: 1px solid rgba(122, 90, 31, .35); }
.admin-table th { font-family: var(--font-label); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.admin-badge { display: inline-block; padding: .15rem .55rem; font-size: .8rem; font-weight: 700; border-radius: 1rem; white-space: nowrap; }
.admin-badge--new { background: var(--sign-red); color: #fff; }
.admin-badge--in_progress { background: var(--antique-gold); color: var(--card-black-green); }
.admin-badge--done { background: var(--heritage-green); color: var(--pale-gold); }
.admin-grid { display: grid; gap: 2rem; margin-bottom: 2rem; }
@media (min-width: 60em) { .admin-grid { grid-template-columns: 1fr 1fr; } }
.admin-details { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: 0 0 1rem; }
.admin-details dt { font-weight: 700; }
.admin-details dd { margin: 0; overflow-wrap: anywhere; }
.admin-pre { overflow-wrap: anywhere; }
.admin-items-title { margin-top: 1rem; }
.admin-item { padding: 1.25rem 0; border-top: 1px solid rgba(122, 90, 31, .45); }
.admin-media { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.admin-media__item { margin: 0; }
.admin-media__item img, .admin-media__item video { display: block; width: 100%; height: 13rem; object-fit: cover; background: #0B160F; border: 1px solid #6B5A35; }
.admin-media__item--video video { object-fit: contain; }
.admin-media__item figcaption { font-size: .8rem; margin-top: .3rem; overflow-wrap: anywhere; }
.admin-media__heic { display: grid; place-items: center; height: 13rem; background: var(--parchment-deep); border: 1px solid #6B5A35; text-align: center; padding: 1rem; }

/* ------------------------------------------------------------------ live eBay listings */
.ebay__status { text-align: center; color: var(--muted); margin: 0 0 1.25rem; }
.ebay__status[hidden] { display: none; }
.ebay__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.ebay__list[hidden] { display: none; }
.ebay-card { display: flex; flex-direction: column; height: 100%; color: var(--text); text-decoration: none; overflow: hidden; }
.ebay-card:hover .ebay-card__title, .ebay-card:focus-visible .ebay-card__title { text-decoration: underline; }
.ebay-card__img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; background: #FFFDF7; }
.ebay-card__body { display: grid; gap: .35rem; padding: 1rem; flex: 1; align-content: start; }
.ebay-card__title { font-weight: 700; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ebay-card__price { font-family: var(--font-label); font-weight: 700; font-size: 1.05rem; color: var(--heading); }
.ebay-card__meta { font-size: .85rem; color: var(--muted); }
.ebay-card__link { margin-top: auto; padding-top: .35rem; font-size: .85rem; color: var(--link); text-decoration: underline; }

/* Floating "Chat on WhatsApp" button on every page: a gold pill on wide screens, a round icon on phones. */
.chat-fab {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 60;
  display: inline-flex; align-items: center; gap: .6rem;
  min-height: 3.5rem; padding: .5rem 1.15rem .5rem 1rem;
  border: 2px solid var(--card-black-green); border-radius: 999px;
  background: var(--antique-gold); color: var(--card-black-green);
  font-family: var(--font-label); font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .4);
}
.chat-fab .icon { width: 1.6rem; height: 1.6rem; flex: none; }
.chat-fab:hover, .chat-fab:focus-visible { background: var(--pale-gold); }
.chat-fab:focus-visible { outline: 3px solid var(--card-black-green); outline-offset: 3px; }
@media (max-width: 40rem) {
  .chat-fab { width: 3.5rem; padding: 0; justify-content: center; right: .75rem; bottom: .75rem; }
  .chat-fab__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media print { .chat-fab { display: none !important; } }

/* ------------------------------------------------------------------ Treasure Trunk (blog) */
.post-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.post-card { height: 100%; position: relative; }
.post-card > article { display: flex; flex-direction: column; height: 100%; padding: 10px; }
.post-card__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.post-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem 1rem 1rem; }
.post-card__meta { display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: baseline; margin: 0 0 .6rem; font-size: .85rem; color: var(--muted); }
.post-card__cat { font-family: var(--font-label); font-weight: 700; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.post-card h3 { font-size: 1.25rem; margin-bottom: .5rem; }
.post-card__link { color: var(--heading); text-decoration: none; }
.post-card__link::after { content: ""; position: absolute; inset: 0; }   /* the whole card is clickable */
.post-card:hover .post-card__link, .post-card__link:focus-visible { text-decoration: underline; }
.post-card:focus-within { outline: 3px solid var(--focus); outline-offset: 3px; }
.post-card__link:focus-visible { outline: none; }
.post-card__excerpt { color: var(--text); font-size: .975rem; margin-bottom: 1rem; }
.post-card__more {
  margin: auto 0 0; display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--font-label); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--link);
}
.post-card__more .icon { transition: transform .15s ease; }
.post-card:hover .post-card__more .icon { transform: translateX(3px); }

/* A single note */
.post { max-width: 42rem; margin-inline: auto; }
.post__meta { margin: 0 0 1.5rem; font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.post__figure { margin: 0 0 2rem; }
.post__figure img { display: block; margin-inline: auto; width: auto; max-width: 100%; max-height: 36rem; border: 2px solid var(--accent); }
.post__body { font-size: 1.0625rem; }
.post__body h3 { font-size: 1.3rem; margin-top: 1.75em; }
.post__body a { font-weight: 700; }
.post__body img { margin-block: 1.5rem; border: 2px solid var(--accent); }
.post__back { margin: 2.5rem 0 0; text-align: center; }

/* Share buttons */
.share { max-width: 42rem; margin: 2.5rem auto 0; padding: 1.5rem 0 0; border-top: 1px solid var(--rule); text-align: center; }
.share__title { margin-bottom: 1rem; }
.share__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.share__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 2.75rem; padding: .5rem 1rem;
  border: 2px solid var(--accent); border-radius: var(--radius); background: transparent; color: var(--heritage-green); cursor: pointer;
  font-family: var(--font-label); font-weight: 700; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; line-height: 1.2;
}
.share__btn .icon { width: 1.15rem; height: 1.15rem; flex: none; }
.share__btn:hover, .share__btn:focus-visible { background: var(--heritage-green); color: var(--pale-gold); border-color: var(--heritage-green); }
.share__btn[hidden] { display: none; }
.share__status { min-height: 1.6em; margin: 1rem 0 0; font-size: .95rem; color: var(--muted); }
.post-pager { max-width: 42rem; margin: 2rem auto 0; }
.post-pager ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.post-pager a { display: block; padding: 1rem 1.25rem; border: 1px solid var(--rule); text-decoration: none; color: var(--heading); height: 100%; }
.post-pager a:hover { border-color: var(--accent); background: rgba(122, 90, 31, .08); }
.post-pager__title { display: block; font-family: var(--font-head); font-weight: 700; line-height: 1.3; }
.post-pager__older { text-align: right; }
@media (min-width: 40em) {
  .post-pager ul { grid-template-columns: 1fr 1fr; }
  .post-pager__older:only-child { grid-column: 2; }
}
@media print { .share, .post-pager, .post__back { display: none !important; } }

/* ------------------------------------------------------------------ Latest finds mosaic (4 x 2, photos swap at random) */
.mosaic__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; list-style: none; margin: 0; padding: 0; }
.mosaic__tile { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border: 2px solid var(--accent); background: var(--deep-forest); }
.mosaic__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mosaic__img--in { opacity: 0; transition: opacity .5s ease; }
.mosaic__img--in.is-in { opacity: 1; }
.mosaic__cap {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 1.6rem .65rem .5rem;
  font-size: .78rem; line-height: 1.25; color: var(--cream);
  background: linear-gradient(to bottom, rgba(11, 22, 15, 0), rgba(11, 22, 15, .9));
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  transition: opacity .3s ease;
}
.mosaic__cap.is-changing { opacity: 0; }
.mosaic__pause {
  display: inline-flex; align-items: center; gap: .5rem; margin: 1rem auto 0; min-height: 2.75rem; padding: .4rem 1rem;
  border: 2px solid var(--accent); background: transparent; color: var(--link); cursor: pointer;
  font-family: var(--font-label); font-weight: 700; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
}
.mosaic { display: flex; flex-direction: column; align-items: stretch; }
.mosaic__pause { align-self: center; }
.mosaic__pause[hidden] { display: none; }
.mosaic__pause:hover { background: var(--van-green); }
.mosaic__pause .icon { width: 1rem; height: 1rem; }
.mosaic__play-icon { display: none; }
.mosaic__pause[aria-pressed="true"] .mosaic__pause-icon { display: none; }
.mosaic__pause[aria-pressed="true"] .mosaic__play-icon { display: inline-flex; }
@media (min-width: 48em) { .mosaic__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; } }
@media (prefers-reduced-motion: reduce) { .mosaic__img--in, .mosaic__cap { transition: none; } }

/* ------------------------------------------------------------------ site editor (admin) */
.admin-sections { margin-bottom: 1.5rem; }
.editor-intro { max-width: 40rem; font-size: 1.05rem; }
.editor-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); margin: 1.5rem 0 0; padding: 0; list-style: none; }
.editor-card {
  display: grid; gap: .4rem; height: 100%; padding: 1.25rem; text-decoration: none; color: var(--heritage-green);
  background: #FFFDF7; border: 2px solid var(--burnished-gold); border-radius: var(--radius);
}
.editor-card strong { font-size: 1.1rem; }
.editor-card span { font-size: .95rem; color: #3D5246; }
.editor-card:hover, .editor-card:focus-visible { border-color: var(--heritage-green); box-shadow: 0 0 0 3px rgba(23, 58, 42, .2); }
.editor-card--quiet { background: transparent; border-style: dashed; }
.editor-list { margin: 1rem 0 1.5rem; padding: 0; list-style: none; }
.editor-row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem;
  padding: 1rem 0; border-top: 1px solid rgba(122, 90, 31, .4);
}
.editor-row:last-child { border-bottom: 1px solid rgba(122, 90, 31, .4); }
.editor-row__main { display: grid; gap: .15rem; min-width: 0; }
.editor-row__actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.editor-row.is-past .editor-row__main { opacity: .6; }
.editor-undo { margin: 0; }
.editor-finds { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); margin: 1.5rem 0; padding: 0; list-style: none; }
.editor-find { display: grid; gap: .35rem; align-content: start; }
.editor-find img { width: 100%; aspect-ratio: 1; object-fit: cover; background: #0B160F; border: 1px solid var(--burnished-gold); }
.editor-find__preview { max-width: 100%; height: auto; border: 1px solid var(--burnished-gold); }
.enquiry-form input[type="date"], .enquiry-form input[type="time"], .enquiry-form input[type="url"], .enquiry-form input[type="file"], .editor-prices input[type="text"] {
  width: 100%; font: inherit; font-size: 1rem; line-height: 1.5; color: #102419;
  background: #FFFDF7; border: 2px solid #6B5A35; border-radius: var(--radius); padding: .7rem .8rem; min-height: 2.875rem;
}
.enquiry-form input[type="date"]:focus-visible, .enquiry-form input[type="time"]:focus-visible, .enquiry-form input[type="url"]:focus-visible,
.enquiry-form input[type="file"]:focus-visible, .editor-prices input:focus-visible { outline: 3px solid var(--heritage-green); outline-offset: 2px; }
.editor-wide { max-width: 40rem; }
.editor-prices { margin: .5rem 0; }
.editor-prices td { padding: .4rem .5rem .4rem 0; }
.editor-hours { display: grid; gap: .75rem; }
.editor-hours__row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
.editor-hours__day { min-width: 6.5rem; font-weight: 700; }
.editor-hours__times { display: flex; align-items: center; gap: .5rem; flex: 1 1 100%; }
.editor-hours__row input[type="time"] { flex: 1 1 0; min-width: 0; max-width: 9.5rem; width: auto; }
@media (min-width: 40em) { .editor-hours__times { flex: 0 1 auto; } }
.editor-hours__row .field-error { flex-basis: 100%; }
.editor-status[data-state="live"] { border-left-color: var(--heritage-green); background: #E3EFDF; }
.editor-status[data-state="failed"] { border-left-color: var(--error); background: #FBEDEA; }
.admin-alert ul { margin: .5rem 0 0; padding-left: 1.25rem; }
