@import url('https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;500;600;700;800&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&display=swap');

:root {
  --ink: #182c25;
  --slate: #63706a;
  --mist: #e2e8e3;
  --paper: #fff;
  --canvas: #f8faf7;
  --moss: #194d3c;
  --moss-a: #edf4ec;
  --lime: #d5eb86;
  --step--1: .875rem;
  --step-0: 1rem;
  --step-1: 1.25rem;
  --step-2: 1.6rem;
  --step-3: 2.2rem;
  --step-4: 3.1rem;
  --measure: 65ch;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 1rem/1.55 'Libre Franklin', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: .2em; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
img { max-width: 100%; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1, h2, h3 { line-height: 1.2; letter-spacing: -.035em; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #548641; outline-offset: 4px; }
main:focus { outline: none; }
.wrap { max-width: 78rem; margin-inline: auto; padding-inline: 1.5rem; }
.icon { display: inline-block; width: 1.25rem; height: 1.25rem; flex-shrink: 0; vertical-align: middle; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -6rem; z-index: 10; padding: .8rem 1.2rem; background: var(--moss); color: white; border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.text-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--moss); text-decoration: none; font-size: .875rem; font-weight: 600; }
.text-link:hover { text-decoration: underline; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; min-height: 2.75rem; padding: .7rem 1.2rem; background: var(--moss); color: #fff; border: 1px solid var(--moss); border-radius: .65rem; text-decoration: none; font: 600 .875rem/1.4 'Libre Franklin', system-ui, sans-serif; transition: background .18s, transform .18s; }
.btn:hover { background: #103c2e; }

/* A generous search field is the primary action across the catalogue. */
.masthead { position: relative; z-index: 40; background: #fff; border-bottom: 1px solid var(--mist); }
.masthead-inner { display: flex; align-items: center; gap: 3rem; padding-block: 1.35rem; }
.wordmark { display: inline-block; font-size: 2.15rem; font-weight: 800; line-height: 1; letter-spacing: -.075em; color: var(--moss); text-decoration: none; }
.wordmark span { color: #719937; }
.searchbar { display: flex; gap: .6rem; margin-block: 2rem 1.25rem; }
.searchbar input { flex: 1; min-width: 0; padding: .8rem 1rem; background: #fff; border: 1px solid var(--mist); border-radius: .65rem; color: var(--ink); }
.searchbar input::placeholder { color: var(--slate); opacity: 1; }
.searchbar--masthead { position: relative; flex: 1; align-items: center; gap: .75rem; max-width: 44rem; margin: 0 auto; padding: .3rem .3rem .3rem 1rem; border: 1px solid var(--mist); border-radius: .8rem; background: var(--canvas); }
.searchbar--masthead > .icon { color: var(--slate); }
.searchbar--masthead input { padding: .45rem 0; border: 0; background: transparent; font-size: .875rem; }
.searchbar--masthead .btn { min-height: 2.6rem; padding: .6rem 1rem; }
.suggest-panel { position: absolute; left: 0; right: 0; top: calc(100% + .45rem); z-index: 55; max-height: min(24rem, 70vh); overflow-y: auto; padding: .45rem; background: #fff; border: 1px solid var(--mist); border-radius: .8rem; box-shadow: 0 1rem 2.2rem #153b2318; }
.suggest-group { margin: 0; }
.suggest-group + .suggest-group { margin-top: .35rem; padding-top: .35rem; border-top: 1px solid var(--mist); }
.suggest-group h3 { margin: .2rem .65rem .25rem; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.suggest-item { display: block; padding: .55rem .65rem; border-radius: .5rem; text-decoration: none; color: var(--ink); }
.suggest-item:hover, .suggest-item[aria-selected="true"] { background: var(--moss-a); }
.suggest-item strong { display: block; font-size: .875rem; }
.suggest-item small { display: block; margin-top: .15rem; color: var(--slate); font-size: .75rem; }
.searchbar--masthead input:focus-visible { outline-offset: 2px; }
.category-jump { display: inline-flex; align-items: center; gap: .75rem; font-size: .875rem; font-weight: 600; text-decoration: none; cursor: pointer; list-style: none; }
.category-jump::-webkit-details-marker { display: none; }
.category-jump:hover { color: var(--moss); text-decoration: underline; }
.category-menu { position: static; }
.category-menu-panel { display: none; }
.category-menu[open] .category-menu-panel { display: block; position: absolute; inset-inline: 0; top: 100%; max-height: min(70vh, 42rem); overflow-y: auto; overscroll-behavior: contain; z-index: 50; background: #fff; border-top: 1px solid var(--mist); box-shadow: 0 1.25rem 2.5rem #153b2314; padding-block: 1.35rem 1.6rem; }
.category-menu-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 1.2rem 1.5rem; }
.category-menu-col a { display: block; font-size: .8rem; line-height: 1.45; color: var(--slate); text-decoration: none; padding: .15rem 0; }
.category-menu-col > a:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; font-weight: 600; color: var(--ink); margin-bottom: .25rem; }
.category-menu-count { color: var(--slate); font-size: .65rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.category-menu-col.is-current-branch { border-left: 2px solid #9bb68f; padding-left: .7rem; }
.category-menu-col a.is-current-parent { color: var(--moss); font-weight: 600; }
.category-menu-col a.category-menu-current-leaf { display: flex; align-items: center; gap: .3rem; padding-left: .65rem; color: var(--moss); font-size: .72rem; }
.category-menu-col a[aria-current] { color: var(--moss); text-decoration: underline; }
.category-menu-col a:hover { color: var(--moss); }
.category-menu-empty { margin: 0; font-size: .875rem; }
.catalogue-nav { border-top: 1px solid #f0f3ef; }
.catalogue-nav-inner { display: flex; align-items: stretch; gap: 2.1rem; }
.catalogue-nav :is(a, button) { display: inline-flex; align-items: center; gap: .5rem; padding: .85rem 0; font-size: .875rem; text-decoration: none; color: var(--slate); border-bottom: 2px solid transparent; }
.catalogue-nav :is(a, button):hover, .catalogue-nav :is(a, button)[aria-current] { color: var(--moss); border-bottom-color: var(--moss); }
.catalogue-nav :is(a, button)[aria-current] { font-weight: 600; }
.catalogue-nav .icon { width: 1.1rem; height: 1.1rem; }
.city-pref { position: relative; margin-left: auto; align-self: center; }
.city-pref summary { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem 0; font-size: .875rem; font-weight: 600; color: var(--moss); cursor: pointer; list-style: none; }
.city-pref summary::-webkit-details-marker { display: none; }
.city-pref-menu { position: absolute; right: 0; top: calc(100% + .4rem); z-index: 45; min-width: 12rem; padding: .6rem; background: #fff; border: 1px solid var(--mist); border-radius: .75rem; box-shadow: 0 .8rem 1.6rem #153b2314; }
.city-pref-label { margin: 0 .4rem .35rem; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.catalogue-nav .city-pref-menu button { display: block; width: 100%; padding: .45rem .6rem; border: 0; border-bottom: 0; border-radius: .45rem; color: var(--ink); font-size: .875rem; font-weight: 500; text-align: left; background: transparent; }
.catalogue-nav .city-pref-menu button:hover,
.catalogue-nav .city-pref-menu button[aria-current] { color: var(--moss); background: var(--canvas); }

/* The feature uses an existing listing image and links to that listing. */
.discovery-hero { display: grid; grid-template-columns: 1.08fr 1fr; align-items: center; gap: 3rem; padding-block: 2.75rem 3rem; }
.discovery-hero--text { grid-template-columns: 1fr; }
.hero-copy { padding-block: .5rem; }
.eyebrow { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; color: var(--moss); font-size: .75rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.status-dot { width: .5rem; height: .5rem; border-radius: 50%; background: #74a154; }
.hero-copy h1 { margin: 0; font-size: clamp(2.8rem, 5vw, 4.25rem); font-weight: 600; line-height: 1.08; letter-spacing: -.065em; }
.hero-copy h1 span { color: var(--moss); }
.hero-intro { margin: 1.3rem 0 1.6rem; color: var(--slate); font-size: 1rem; line-height: 1.8; }
.btn--hero { min-height: 3.1rem; padding-inline: 1.3rem; }
.hero-note { display: inline-flex; align-items: center; gap: .35rem; margin-left: 1rem; color: var(--slate); font-size: .75rem; }
.hero-note .icon { width: 1rem; height: 1rem; }
.hero-feature { position: relative; display: block; min-width: 0; aspect-ratio: 1.48; border-radius: 1.25rem 4rem 1.25rem 1.25rem; background: var(--moss-a); overflow: hidden; text-decoration: none; }
.hero-feature::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, #0b221dbf); pointer-events: none; }
.hero-feature-image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.hero-feature:hover .hero-feature-image { transform: scale(1.035); }
.feature-label { position: absolute; top: 1.15rem; left: 1.15rem; z-index: 1; display: inline-flex; align-items: center; gap: .4rem; background: #fffffff0; color: var(--moss); border-radius: 2rem; padding: .4rem .7rem; font-size: .75rem; font-weight: 600; }
.feature-caption { position: absolute; bottom: 1.5rem; left: 1.5rem; right: 1.5rem; z-index: 1; display: flex; align-items: end; gap: 1rem; color: #fff; }
.feature-caption > span:first-child { flex: 1; min-width: 0; }
.feature-caption small { display: block; font-size: .75rem; margin-bottom: .4rem; }
.feature-caption strong { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 1.3rem; line-height: 1.35; letter-spacing: -.025em; }
.round-arrow { display: grid; place-items: center; border: 1px solid #ffffff80; border-radius: 50%; width: 2.7rem; height: 2.7rem; flex-shrink: 0; }

.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.section-heading h2 { font-size: 1.35rem; font-weight: 600; margin: 0; }
.section-heading > span { font-size: .8rem; color: var(--slate); }
.category-section { padding-block: 1.5rem 2rem; border-top: 1px solid var(--mist); }
.category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: .8rem; }
.category-tile { display: flex; flex-direction: column; gap: .65rem; min-width: 0; padding: .9rem; border: 1px solid var(--mist); border-radius: .85rem; transition: border-color .18s, background .18s; }
.category-tile:hover { border-color: #749481; background: var(--canvas); }
.category-tile-main { display: flex; align-items: center; gap: .75rem; min-width: 0; text-decoration: none; font-weight: 600; }
.category-tile-main span:nth-child(2) { overflow-wrap: anywhere; }
.category-tile-main strong { display: block; font-size: .875rem; }
.category-tile-main small { display: block; margin-top: .15rem; font-size: .75rem; font-weight: 500; color: var(--slate); }
.category-tile-children { display: flex; flex-wrap: wrap; gap: .3rem .7rem; list-style: none; margin: 0; padding: 0; }
.category-tile-children a { font-size: .75rem; color: var(--slate); text-decoration: none; }
.category-tile-children a:hover { color: var(--moss); }
.category-symbol { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .7rem; background: #edf3e8; color: var(--moss); flex-shrink: 0; }
.category-tile:nth-child(3n + 2) .category-symbol { background: #f4eee0; color: #805827; }
.category-tile:nth-child(3n) .category-symbol { background: #eaf0f8; color: #496a8b; }
.category-symbol .icon { width: 1.45rem; height: 1.45rem; }
.category-arrow { margin-left: auto; width: .9rem; height: .9rem; color: var(--slate); }
.offers-section { padding-block: 1.25rem 1rem; }
.offers-heading { margin-bottom: 1.65rem; align-items: end; }
.offers-heading h2 { font-size: 2rem; }
.offers-heading .eyebrow { margin-bottom: .5rem; }
.listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.8rem 1.5rem; list-style: none; padding: 0; margin: 0; }
.listing-card { min-width: 0; position: relative; }
.card-link { display: flex; flex-direction: column; height: 100%; color: var(--ink); text-decoration: none; border: 1px solid var(--mist); border-radius: 1rem; transition: border-color .18s, box-shadow .18s; }
.card-link:hover { border-color: #9bad9c; box-shadow: 0 6px 18px #1638260a; }
.card-media { position: relative; aspect-ratio: 1.55; overflow: hidden; border-radius: calc(1rem - 1px) calc(1rem - 1px) 0 0; background: var(--moss-a); }
.card-media > img, .card-media > .thumb { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.card-link:hover .card-media > img { transform: scale(1.04); }
.card-type { position: absolute; top: .8rem; left: .8rem; border-radius: 2rem; background: #fffffff2; color: var(--ink); padding: .3rem .65rem; font-size: .75rem; font-weight: 500; }
.card-body { display: flex; flex-direction: column; flex: 1; padding: 1rem 1.1rem; }
.card-place { display: flex; align-items: center; gap: .35rem; margin: 0 0 .5rem; color: var(--slate); font-size: .75rem; }
.card-place .icon { width: .95rem; height: .95rem; }
.card-body h3 { margin: 0 0 1rem; font-size: 1rem; line-height: 1.5; font-weight: 600; letter-spacing: -.02em; }
.card-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: .9rem; border-top: 1px solid #edf0ec; }
.card-price { color: var(--moss); font-size: 1.1rem; font-weight: 700; }
.card-detail { color: var(--slate); font-size: .75rem; }
.card-arrow { width: 1.1rem; height: 1.1rem; color: var(--moss); }
.image-placeholder { background: #edf2ea; color: #697b68; }
.image-placeholder .icon { width: 2rem; height: 2rem; }
.image-placeholder > span { font-size: .75rem; }
.card-media > .image-placeholder, .row > .image-placeholder, .image-placeholder.hero-figure { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .65rem; background-image: radial-gradient(circle at 50% 50%, #ffffff70, transparent 65%); }
.partner-block { display: flex; align-items: center; gap: 1.5rem; padding: 2rem; margin-block: 2rem; background: #f1f5e9; border: 1px solid #e1e9d5; border-radius: 1rem; }
.partner-symbol { display: grid; place-items: center; width: 4rem; height: 4rem; flex-shrink: 0; border: 1px solid #d0dcc1; border-radius: 50%; color: var(--moss); }
.partner-symbol .icon { width: 2rem; height: 2rem; }
.partner-block .eyebrow { margin-bottom: .4rem; font-size: .75rem; }
.partner-block h2 { font-size: 1.45rem; margin: 0 0 .45rem; font-weight: 600; }
.partner-block p:last-child { margin: 0; color: var(--slate); font-size: .875rem; }
.partner-sign { margin-left: auto; padding-left: 1rem; font-size: 2rem; color: var(--moss); font-weight: 800; letter-spacing: -.08em; }
.partner-sign > span { color: #709942; padding-left: .3rem; }

/* Existing category, search and detail structures share the same system. */
.crumbs { font-size: .8rem; color: var(--slate); margin: 0; padding-block: 1.5rem; overflow-wrap: anywhere; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; color: var(--moss); }
.browse-head { padding-block: .5rem 1.5rem; }
.browse-head h1 { margin: 0 0 .6rem; font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; }
.browse-head p { margin: 0; color: var(--slate); }
.chips { display: flex; flex-wrap: wrap; gap: .55rem; padding-block: .7rem; }
.chip { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.5rem; padding: .45rem .85rem; font-size: .875rem; line-height: 1.4; border: 1px solid var(--mist); border-radius: 2rem; text-decoration: none; color: var(--slate); overflow-wrap: anywhere; max-width: 100%; }
.chip:hover { border-color: var(--moss); color: var(--moss); }
.chip[aria-current] { background: var(--moss); border-color: var(--moss); color: #fff; }
.chip-n { font-size: .75rem; font-variant-numeric: tabular-nums; opacity: .8; }
.result-count { margin: 1rem 0; color: var(--slate); font-size: .875rem; }
.rows { list-style: none; margin: 1rem 0 0; padding: 0; }
.row { display: grid; grid-template-columns: 11rem minmax(0, 1fr) auto; gap: 1.4rem; align-items: center; padding-block: 1.4rem; border-bottom: 1px solid var(--mist); }
.row img, .row > .thumb { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; background-color: var(--moss-a); border-radius: .75rem; display: block; }
.row > .image-placeholder { display: flex; padding: .5rem; text-align: center; }
.search-heading { padding-top: 2rem; }
.search-heading + .searchbar { margin-top: .5rem; }
.row h3 { margin: 0 0 .5rem; font-size: 1.05rem; line-height: 1.4; font-weight: 600; }
.row h3 a { text-decoration: none; }
.row h3 a:hover { color: var(--moss); text-decoration: underline; }
.row .meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; color: var(--slate); font-size: .875rem; }
.row .row-price { color: var(--moss); font-size: 1.1rem; font-weight: 700; text-align: right; }
.mark { display: inline-block; font-size: .75rem; font-weight: 500; padding: .2rem .55rem; border-radius: 1rem; background: var(--moss-a); color: var(--moss); text-decoration: none; }
.mark:hover { text-decoration: underline; }
.mark--date { background: var(--moss); color: #fff; }
.hero-figure { display: block; width: calc(100% - 3rem); max-width: 75rem; height: auto; max-height: 34rem; aspect-ratio: 21/9; margin: 2rem auto 0; object-fit: cover; background: var(--mist); border-radius: 1.25rem; }
.title { margin: .25rem 0 .85rem; max-width: 26ch; font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 600; line-height: 1.15; }
.place { margin: 0; font-size: 1rem; color: var(--slate); }
.place a { color: var(--moss); }
.action-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; padding-block: 1.4rem; margin-top: 1.5rem; border-block: 1px solid var(--mist); }
.price { color: var(--moss); font-size: 1.8rem; font-weight: 600; letter-spacing: -.04em; }
.columns { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 4rem; padding-block: 2rem; }
.prose { font-family: 'Source Serif 4', Georgia, serif; font-size: 1.12rem; line-height: 1.8; max-width: var(--measure); overflow-wrap: anywhere; }
.prose p { margin: 0 0 1em; }
.facts { margin: 0; padding: .5rem 1.2rem; border-radius: .8rem; background: var(--canvas); font-size: .875rem; }
.facts div { padding-block: .9rem; border-bottom: 1px solid var(--mist); }
.facts div:last-child { border-bottom: 0; }
.facts dt { color: var(--slate); }
.facts dd { margin: .25rem 0 0; font-weight: 500; overflow-wrap: anywhere; }
.section-title { font-size: 1.5rem; font-weight: 600; margin: 2rem 0 1rem; }
.empty { padding: 3rem 1.5rem; margin-block: 1.5rem; border: 1px dashed #c9d6ca; border-radius: 1rem; background: var(--canvas); }
.empty h2, .empty h3 { font-size: 1.25rem; margin: .75rem 0 .5rem; }
.empty p { margin: 0; color: var(--slate); max-width: var(--measure); }
.pager { display: flex; flex-wrap: wrap; gap: 1rem; padding-block: 1.5rem; font-size: .875rem; }
.pager nav { width: 100%; }
.pager svg { width: 1.25rem; height: 1.25rem; }
.pager a, .pager span[aria-current] { display: inline-flex; align-items: center; padding: .6rem .9rem; border-radius: .5rem; text-decoration: none; }
.pager a:hover { background: var(--moss-a); }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.pagination-pages { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.pagination-disabled, .pagination-gap { padding: .6rem .75rem; color: var(--slate); }
.pagination-current { background: var(--moss); color: #fff; }
.seller-info { scroll-margin-top: 2rem; }
.contact-unavailable { color: var(--slate); font-size: .875rem; }
.contact-panel { padding: 1.5rem; margin-block: 1rem; background: var(--canvas); border: 1px solid var(--mist); border-radius: 1rem; scroll-margin-top: 1.5rem; }
.contact-panel h2 { margin: 0 0 .7rem; font-size: 1.35rem; }
.contact-panel p { margin: .5rem 0; }
.inquiry-form { margin: 0; }
.inquiry-form p { margin: 0 0 .9rem; color: var(--slate); font-size: .875rem; }
.inquiry-form label { display: block; margin-top: .85rem; font-size: .75rem; color: var(--slate); }
.inquiry-form input, .inquiry-form textarea { width: 100%; margin-top: .3rem; padding: .65rem .75rem; border: 1px solid var(--mist); border-radius: .5rem; background: #fff; }
.inquiry-form textarea { min-height: 7rem; resize: vertical; }
.inquiry-form .btn { width: 100%; margin-top: 1rem; }
.inquiry-honey { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.inquiry-dialog { width: min(28rem, calc(100vw - 2rem)); padding: 0; border: 0; background: transparent; color: var(--ink); }
.inquiry-dialog::backdrop { background: #081d17a8; }
.inquiry-dialog-box { padding: 1.25rem 1.35rem 1.5rem; border-radius: .9rem; background: #fff; box-shadow: 0 1.5rem 3rem #10281f33; max-height: min(90vh, 42rem); overflow-y: auto; }
.inquiry-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; }
.inquiry-dialog-head h3 { margin: 0; font-size: 1.15rem; }
.inquiry-dialog-head button { color: var(--slate); background: transparent; border: 0; padding: .2rem; font-size: .85rem; }
.inquiry-dialog-head button:hover { color: var(--ink); }

footer.site { margin-top: 4rem; background: var(--canvas); border-top: 1px solid var(--mist); color: var(--slate); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2.5rem; }
.footer-inner .wordmark { font-size: 1.9rem; }
.footer-inner p { font-size: .8rem; margin: .7rem 0 0; }
.footer-bottom { padding-block: 1rem; border-top: 1px solid var(--mist); font-size: .75rem; }

@media (max-width: 59.999rem) {
  .masthead-inner { gap: 1.5rem; }
  .category-jump { font-size: .8rem; }
  .category-jump .icon { display: none; }
  .catalogue-nav-inner { justify-content: space-between; gap: .8rem; }
  .catalogue-nav :is(a, button) { font-size: .8rem; }
  .catalogue-nav .icon { display: none; }
  .discovery-hero { gap: 1.5rem; }
  .hero-copy h1 { font-size: 3rem; }
  .hero-intro { font-size: .9rem; }
  .hero-intro br { display: none; }
  .hero-note { display: flex; margin: .75rem 0 0; }
  .hero-feature { aspect-ratio: .95; }
  .feature-caption { bottom: 1.1rem; left: 1.1rem; right: 1.1rem; }
  .feature-caption strong { font-size: 1.1rem; }
  .round-arrow { width: 2rem; height: 2rem; }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .columns { grid-template-columns: minmax(0, 1fr) 16rem; gap: 2rem; }
}
@media (max-width: 39.999rem) {
  .wrap { padding-inline: 1.25rem; }
  .masthead-inner { flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: 1.1rem; }
  .wordmark { font-size: 1.9rem; }
  .category-jump { min-height: 2rem; }
  .searchbar--masthead { order: 3; flex-basis: 100%; max-width: none; padding-left: .75rem; gap: .5rem; }
  .searchbar--masthead input { font-size: .8rem; }
  .searchbar--masthead .btn { padding-inline: .85rem; }
  .searchbar--masthead .btn .icon { display: none; }
  .catalogue-nav-inner { flex-wrap: wrap; justify-content: flex-start; column-gap: 1.1rem; row-gap: 0; padding-block: .35rem; }
  .catalogue-nav :is(a, button) { padding: .5rem 0; font-size: .8rem; min-height: 2.5rem; }
  .discovery-hero { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding-block: 1.6rem 1.75rem; }
  .hero-copy h1 { font-size: 3.15rem; }
  .hero-copy .eyebrow { font-size: .75rem; letter-spacing: .07em; }
  .hero-intro { margin-block: 1rem 1.25rem; }
  .hero-note { display: inline-flex; margin: 0 0 0 .65rem; font-size: .75rem; }
  .btn--hero { padding-inline: 1rem; font-size: .8rem; gap: .5rem; }
  .hero-feature { aspect-ratio: 1.45; border-top-right-radius: 3rem; }
  .feature-caption strong { font-size: 1rem; }
  .feature-label { top: .85rem; left: .85rem; font-size: .75rem; }
  .category-section { padding-block: 1.3rem; }
  .section-heading { gap: .75rem; flex-wrap: wrap; }
  .section-heading > span { display: none; }
  .section-heading h2 { font-size: 1.3rem; }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .category-tile { padding: .7rem; gap: .5rem; font-size: .8rem; }
  .category-symbol { width: 2rem; height: 2rem; }
  .category-symbol .icon { width: 1.2rem; height: 1.2rem; }
  .category-arrow { display: none; }
  .offers-heading { margin-block: .5rem 1.2rem; }
  .offers-heading h2 { font-size: 1.8rem; }
  .offers-heading .eyebrow { font-size: .75rem; }
  .listing-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .card-body { padding: 1rem; }
  .partner-block { padding: 1.3rem; margin-block: 1.5rem; gap: 1rem; }
  .partner-symbol { display: none; }
  .partner-sign { display: none; }
  .partner-block h2 { font-size: 1.3rem; }
  .partner-block p:last-child { font-size: .8rem; }
  .pagination-pages { flex-basis: 100%; justify-content: center; order: 3; }
  .row { grid-template-columns: 7.5rem minmax(0, 1fr); column-gap: .9rem; row-gap: .5rem; align-items: start; padding-block: 1rem; }
  .row > img, .row > .thumb { grid-row: span 2; }
  .row h3 { font-size: .9rem; }
  .row .meta { font-size: .75rem; gap: .3rem; }
  .row .row-aside { grid-column: 2; align-items: flex-start; flex-direction: row; }
  .row .row-price { text-align: left; font-size: 1rem; }
  .row .image-placeholder > span { font-size: .75rem; text-align: center; }
  .row .image-placeholder .icon { width: 1.3rem; height: 1.3rem; }
  .hero-figure { width: calc(100% - 2.5rem); aspect-ratio: 4/3; margin-top: 1.25rem; border-radius: 1rem; }
  .title { font-size: 2rem; }
  .columns { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .prose { font-size: 1.05rem; }
  .searchbar:not(.searchbar--masthead) { flex-wrap: wrap; }
  .searchbar:not(.searchbar--masthead) input { flex-basis: 65%; }
  .footer-inner { flex-wrap: wrap; gap: 1.5rem; padding-block: 2rem; }
  .footer-inner > div { flex-basis: 100%; }
  .footer-inner > p { margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* --- auth ---------------------------------------------------------------- */

.auth-panel { max-width: 24rem; margin-inline: auto; padding-block: 3rem; }
.auth-panel h1 { font-size: var(--step-2); font-weight: 600; letter-spacing: -0.02em; margin: 0 0 0.5rem; }
.auth-note { margin: 0 0 1.75rem; color: var(--slate); font-size: var(--step--1); }
.auth-panel label { display: block; margin-top: 1rem; font-size: var(--step--1); color: var(--slate); }
.auth-panel input[type="email"],
.auth-panel input[type="text"],
.auth-panel input[type="password"] {
  width: 100%; font: inherit; margin-top: 0.3rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--mist); border-radius: 2px; background: #fff;
}
.auth-panel input:focus-visible { outline: 2px solid var(--moss); outline-offset: -1px; border-color: var(--moss); }
.auth-panel .btn { margin-top: 1.5rem; width: 100%; }
.checkbox { display: flex; align-items: center; gap: 0.5rem; margin-top: 1rem; }
.checkbox input { margin: 0; }

/* Errors say what to do, and never apologise. */
.field-error { margin: 0.35rem 0 0; color: #8C2F1E; font-size: var(--step--1); }
.field-hint  { margin: 0.35rem 0 0; color: var(--slate); font-size: 0.78rem; }
.auth-alt { margin-top: 1.75rem; font-size: var(--step--1); color: var(--slate); }

.masthead-auth { display: flex; align-items: center; gap: 0.75rem; margin-left: auto; font-size: var(--step--1, 0.833rem); }
.masthead-auth .btn--small { padding: 0.4rem 0.85rem; font-size: inherit; width: auto; margin: 0; }
.masthead-logout { margin: 0; }
.masthead-logout button { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* --- auth tabs (combined page) ----------------------------------------- */
.auth-tabs {
  display: flex;
  gap: 0.25rem;
  margin: 0 0 1.25rem;
  border-bottom: 1px solid var(--mist);
}
.auth-tab {
  flex: 1;
  text-align: center;
  text-decoration: none;
  padding: 0.65rem 0.5rem;
  font-size: var(--step--1);
  font-weight: 600;
  color: var(--slate);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.auth-tab:hover { color: var(--moss); }
.auth-tab[aria-current="page"] {
  color: var(--ink);
  border-bottom-color: var(--moss);
}

/* --- seller (Increment 8) ------------------------------------------------ */

.flash { padding: 0.8rem 1rem; border-radius: 2px; margin: 1.25rem 0 0; font-size: var(--step--1, 0.833rem); }
.flash--success { background: var(--moss-a, #2F5D3F14); color: var(--moss, #2F5D3F); }
.flash--info    { background: var(--mist, #E8E9E6); color: var(--ink, #1B2021); }
.flash--error   { background: #F6E8E5; color: #8C2F1E; }

.verify-card {
  border: 1px solid var(--moss, #2F5D3F);
  border-radius: 2px;
  padding: 1.5rem;
  margin-block: 1rem 2rem;
  max-width: 44rem;
}
.verify-card h2 { font-size: var(--step-1, 1.25rem); font-weight: 600; margin: 0 0 0.5rem; }
.verify-card p { margin: 0 0 1.1rem; color: var(--slate, #5A6360); max-width: 56ch; }
.verify-status { color: var(--ink, #1B2021); }
.verify-note { margin: 0.75rem 0 0; font-size: 0.78rem; }
.verify-todo { margin-top: 1rem; font-size: var(--step--1, 0.833rem); }
.verify-todo summary { cursor: pointer; color: var(--slate, #5A6360); }
.verify-todo ul { margin: 0.5rem 0 0; padding-left: 1.1rem; color: var(--slate, #5A6360); }

.btn--quiet {
  background: transparent;
  color: var(--moss, #2F5D3F);
  border: 1px solid var(--mist, #E8E9E6);
}
.btn--quiet:hover:not(:disabled) { border-color: var(--moss, #2F5D3F); }
.btn--quiet:disabled { color: var(--slate, #5A6360); cursor: not-allowed; opacity: 0.6; }

.row--seller { grid-template-columns: 5rem 1fr auto; align-items: center; }
.mark--quiet { background: var(--mist, #E8E9E6); color: var(--slate, #5A6360); }

/* Discovery sections and informative cards. */
[hidden] { display: none !important; }
select, textarea { font: inherit; color: var(--ink); }
select:focus-visible, summary:focus-visible { outline: 3px solid #548641; outline-offset: 4px; }
.discovery-section { padding-block: 2.75rem 1rem; margin-top: 2rem; border-top: 1px solid var(--mist); }
.discovery-section .section-heading { align-items: end; margin-bottom: 1.5rem; }
.discovery-section h2, .city-section h2 { font-size: 1.8rem; }
.section-intro { margin: .65rem 0 0; color: var(--slate); font-size: .9rem; }
.discovery-section .eyebrow { margin-bottom: .65rem; }
.card-category { color: var(--moss); font-size: .7rem; font-weight: 600; margin: 0 0 .45rem; }
.card-body h3 { margin-bottom: .55rem; }
.card-excerpt { color: var(--slate); font-size: .8rem; line-height: 1.65; margin: .2rem 0 .7rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card-seller { font-size: .7rem; color: var(--slate); margin: auto 0 .75rem; }
.card-body .card-bottom { margin-top: 0; }
.card-body:not(:has(.card-seller)) .card-bottom { margin-top: auto; }
.photo-count { position: absolute; bottom: .65rem; right: .65rem; display: flex; align-items: center; gap: .3rem; background: #132d24cc; color: white; border-radius: .4rem; font-size: .7rem; padding: .25rem .45rem; }
.photo-count .icon { width: .95rem; height: .95rem; }
.city-section { margin-block: 3rem 1rem; padding: 2.2rem; background: var(--moss-a); border-radius: 1.3rem; }
.city-section .section-heading > .icon { width: 3rem; height: 3rem; color: #6b8e58; }
.city-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-top: 1.5rem; }
.city-grid a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-decoration: none; background: white; padding: 1.1rem; border-radius: .7rem; border: 1px solid transparent; }
.city-grid a:hover { border-color: var(--moss); }
.city-grid strong, .city-grid small { display: block; }
.city-grid strong { font-size: .9rem; }
.city-grid small { color: var(--slate); font-size: .75rem; margin-top: .3rem; }

/* One browse interface for both category and search routes. */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; font-size: .75rem; line-height: 1.6; margin: 1.5rem 0; color: var(--slate); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; color: var(--moss); }
.browse-heading { padding-block: .75rem 2rem; }
.browse-heading .eyebrow { margin-bottom: .75rem; }
.browse-heading h1 { margin: 0; max-width: 30ch; font-size: clamp(2rem, 3.5vw, 2.75rem); font-weight: 600; }
.browse-heading .browse-summary { margin: .9rem 0 0; color: var(--slate); font-size: .9rem; }
.type-tabs, .subcategory-chips, .locality-chips { margin-top: 1.05rem; }
.type-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .25rem; scrollbar-width: thin; }
.type-tabs .chip { flex-shrink: 0; }
.locality-more { position: relative; }
.locality-more > summary { cursor: pointer; list-style: none; }
.locality-more > summary::-webkit-details-marker { display: none; }
.locality-more > summary:focus-visible { outline: 3px solid #548641; outline-offset: 4px; }
.locality-more-options { position: absolute; right: 0; top: calc(100% + .45rem); z-index: 20; display: grid; width: min(18rem, calc(100vw - 3rem)); max-height: 20rem; overflow-y: auto; padding: .45rem; border: 1px solid var(--mist); border-radius: .75rem; background: #fff; box-shadow: 0 1rem 2.5rem #153b2324; }
.locality-more-options a { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem .7rem; border-radius: .45rem; color: var(--slate); font-size: .75rem; text-decoration: none; }
.locality-more-options a:hover { background: var(--moss-a); color: var(--moss); }
.locality-more-options small { color: inherit; font-variant-numeric: tabular-nums; }
.browse-mobile-nav { display: none; }
.browse-layout { display: grid; grid-template-columns: 15.25rem minmax(0, 1fr); gap: 2rem; align-items: start; }
.browse-sidebar { display: grid; gap: 1rem; min-width: 0; }
.browse-results { min-width: 0; }

.filter-panel { border: 1px solid var(--mist); background: var(--canvas); border-radius: .85rem; overflow: clip; scroll-margin-top: 5rem; }
.filter-panel > summary { display: flex; align-items: center; gap: .7rem; padding: 1.1rem; font-weight: 600; font-size: .9rem; cursor: pointer; list-style: none; }
.filter-panel > summary::-webkit-details-marker { display: none; }
.filter-panel > summary > span:first-child { font-weight: 400; color: var(--slate); font-size: .7rem; margin-left: auto; }
.filter-panel > summary > span:last-child { transition: transform .15s; }
.filter-panel[open] > summary > span:last-child { transform: rotate(180deg); }
.filter-panel form { padding: 0 1.1rem 1.2rem; }
.filter-group { border: 0; border-top: 1px solid var(--mist); min-width: 0; padding: 1rem 0; margin: 0; }
.filter-group legend { float: left; width: 100%; padding: 0; margin-bottom: .7rem; font-size: .8rem; font-weight: 600; }
.filter-group legend + * { clear: both; }
.filter-title { display: block; font-size: .8rem; font-weight: 600; margin: 0 0 .7rem; }
.filter-group > label:not(.filter-title):not(.check-label), .price-inputs label { display: block; font-size: .7rem; color: var(--slate); margin-bottom: .35rem; }
.filter-group input:not([type=checkbox]), .filter-group select { width: 100%; min-width: 0; min-height: 2.6rem; padding: .5rem .6rem; border: 1px solid #ccd6ce; border-radius: .4rem; background: #fff; font-size: .75rem; color: var(--ink); }
.filter-group input[type=date] { margin-bottom: .6rem; }
.check-label { display: flex; align-items: center; gap: .6rem; min-height: 2rem; font-size: .75rem; cursor: pointer; }
.check-label input { width: 1rem; height: 1rem; margin: 0; accent-color: var(--moss); flex-shrink: 0; }
.check-label span { overflow-wrap: anywhere; }
.check-label small { margin-left: auto; color: var(--slate); font-size: .7rem; }
.filter-options { max-height: 14rem; overflow-y: auto; padding: .3rem .35rem .3rem .25rem; margin-left: -.25rem; scrollbar-width: thin; }
.price-inputs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6rem; }
.filter-actions { display: grid; gap: .8rem; padding-top: .3rem; text-align: center; }
.filter-actions .btn { width: 100%; padding-inline: .7rem; }
.filter-actions > a { font-size: .75rem; color: var(--slate); }
.subcategories a { display: flex; align-items: start; justify-content: space-between; gap: .6rem; padding-block: .4rem; font-size: .75rem; text-decoration: none; }
.subcategories a span:last-child { color: var(--slate); font-variant-numeric: tabular-nums; }
.subcategories a:hover { color: var(--moss); text-decoration: underline; }
.subcategories .parent-category { color: var(--moss); margin-bottom: .3rem; }
.results-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding-top: .45rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--mist); margin-bottom: 1.2rem; }
.results-toolbar .result-count { margin: 0 auto 0 0; font-size: .8rem; }
.result-count strong { color: var(--ink); }
.sort-control { display: flex; align-items: stretch; max-width: 100%; }
.sort-control select { min-width: 0; max-width: 13rem; border: 1px solid var(--mist); border-radius: .5rem; padding: .55rem .55rem; background: white; font-size: .75rem; }
.view-switch { display: flex; border: 1px solid var(--mist); border-radius: .5rem; padding: .2rem; }
.view-switch a { display: grid; place-items: center; min-width: 2rem; min-height: 2rem; line-height: 1; text-decoration: none; color: var(--slate); font-size: 1.4rem; border-radius: .3rem; }
.view-switch a[aria-current] { background: var(--moss-a); color: var(--moss); }
.active-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.3rem; }
.active-filters .chip { gap: .5rem; background: var(--canvas); font-size: .7rem; padding: .35rem .65rem; }
.active-filters .chip > span[aria-hidden] { font-size: 1rem; }
.browse-grid { gap: 1.3rem 1rem; }
.browse-grid .card-body { padding: .85rem; }
.browse-grid .card-body h3 { font-size: .9rem; }
.browse-grid .card-price { font-size: 1rem; }
.browse-grid .card-type { left: .6rem; top: .6rem; font-size: .65rem; }
.browse-rows { margin-top: 0; }
.browse-rows .row:first-child { padding-top: 0; }
.row .card-excerpt { margin-block: .6rem .25rem; }
.row .card-seller { margin: .5rem 0 0; }
.empty .btn { margin-top: 1.25rem; }
.empty-alternatives { margin-top: 1.25rem; }
.empty .empty-alternatives > p { color: var(--ink); font-size: .8rem; font-weight: 600; }
.empty-alternatives .chips { padding-bottom: 0; }
.form-errors { padding: 1rem; background: #fff2e9; color: #7c381a; border: 1px solid #edc6ac; border-radius: .7rem; margin-bottom: 1rem; }
.form-errors ul { margin-bottom: 0; }

/* Detail: gallery and full description beside a clear seller panel. */
.detail-topline { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1.8rem; }
.share-button { border: 0; background: transparent; padding: .3rem 0; margin-left: auto; cursor: pointer; }
.share-status { color: var(--slate); font-size: .75rem; }
.share-status:empty { display: none; }
.detail-title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); font-weight: 600; line-height: 1.2; max-width: 38ch; margin: .9rem 0; }
.detail-place { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: var(--slate); font-size: .85rem; margin: 0 0 1.8rem; }
.detail-place a { font-size: .75rem; color: var(--moss); margin-left: .5rem; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 21.5rem; gap: 2.5rem; align-items: start; margin-top: 1.5rem; }
.detail-main, .detail-aside { min-width: 0; }
.detail-aside { position: sticky; top: 1.5rem; }
.gallery-cover { position: relative; display: block; border-radius: 1rem; overflow: hidden; background: var(--canvas); }
.gallery-cover > img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: contain; }
.gallery-hint { position: absolute; bottom: 1rem; right: 1rem; display: flex; align-items: center; gap: .4rem; background: #ffffffeb; padding: .5rem .75rem; border-radius: .5rem; font-size: .75rem; color: var(--ink); }
.gallery-thumbnails { display: grid; grid-template-columns: repeat(auto-fill, minmax(5rem, 1fr)); gap: .65rem; margin-top: .8rem; }
.gallery-thumbnails a { display: block; border: 1px solid var(--mist); border-radius: .6rem; overflow: hidden; }
.gallery-thumbnails a:hover { border-color: var(--moss); }
.gallery-thumbnails img { display: block; width: 100%; height: 5rem; object-fit: cover; }
.gallery-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; width: 100%; min-height: 16rem; aspect-ratio: 4/3; border-radius: 1rem; }
.purchase-panel { padding: 1.6rem; border: 1px solid var(--mist); border-radius: 1rem; box-shadow: 0 8px 28px #153b2305; }
.purchase-panel > .eyebrow { margin-bottom: .5rem; }
.detail-price { color: var(--moss); font-size: 2rem; font-weight: 700; line-height: 1.3; margin: 0 0 1.3rem; letter-spacing: -.04em; }
.contact-action, .seller-profile .btn { width: 100%; }
.purchase-location, .purchase-date { display: flex; align-items: center; gap: .5rem; font-size: .8rem; color: var(--slate); margin: 1rem 0 0; }
.purchase-date { margin: 0 0 1rem; }
.seller-profile { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--mist); scroll-margin-top: 1.5rem; }
.seller-profile .eyebrow { font-size: .65rem; margin-bottom: .5rem; }
.seller-profile h2 { font-size: 1.15rem; margin: 0 0 .8rem; line-height: 1.4; }
.seller-profile p:not(.eyebrow) { color: var(--slate); font-size: .8rem; line-height: 1.8; }
.btn--outline { background: white; color: var(--moss); border-color: #bacbbd; }
.btn--outline:hover { background: var(--moss-a); }
.seller-more { margin-top: 1.3rem; font-size: .75rem; }
.seller-social { display: flex; margin-top: .8rem; font-size: .8rem; }
.detail-sections { display: flex; flex-wrap: wrap; gap: 1.8rem; border-bottom: 1px solid var(--mist); margin-top: 1.5rem; }
.detail-sections a { padding: .8rem 0; font-size: .85rem; font-weight: 600; text-decoration: none; border-bottom: 2px solid transparent; }
.detail-sections a:hover { color: var(--moss); border-color: var(--moss); }
.detail-section { padding-top: 2rem; scroll-margin-top: 1rem; }
.detail-section h2 { font-size: 1.5rem; font-weight: 600; margin: 0 0 1rem; }
.detail-intro { font-size: 1rem; font-weight: 500; line-height: 1.8; }
.detail-section .prose { font-family: 'Libre Franklin', system-ui, sans-serif; font-size: .95rem; line-height: 1.9; }
.prose h2, .prose h3, .prose h4 { font-size: 1.1rem; margin: 1.5rem 0 .75rem; }
.prose ul, .prose ol { padding-left: 1.4rem; }
.prose li { margin-bottom: .4rem; }
.prose a { color: var(--moss); }
.prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.prose td, .prose th { border: 1px solid var(--mist); padding: .6rem; }
.prose blockquote { border-left: 3px solid #b5cdaa; margin-inline: 0; padding-left: 1rem; }
.detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; padding: .4rem 1.2rem; }
.detail-facts > div:last-child { border-bottom: 1px solid var(--mist); }
.gallery-is-open { overflow: hidden; }
.gallery-dialog { width: min(72rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); padding: 1rem; border: 0; border-radius: .9rem; background: #10281f; color: white; }
.gallery-dialog::backdrop { background: #081d17d9; }
.gallery-dialog-toolbar, .gallery-dialog-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .8rem; }
.gallery-dialog button { color: white; background: #ffffff12; border: 1px solid #ffffff55; border-radius: .4rem; min-height: 2.75rem; padding: .5rem .9rem; font-size: .8rem; }
.gallery-dialog button:hover { background: #ffffff25; }
.gallery-dialog > img { display: block; width: 100%; height: calc(100dvh - 13rem); object-fit: contain; margin: 1rem 0; }

@media (max-width: 74rem) and (min-width: 60rem) {
  .browse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 60rem) {
  .browse-heading { padding-bottom: 1.5rem; }
}
@media (max-width: 59.999rem) {
  .browse-mobile-nav { position: sticky; top: .5rem; z-index: 35; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: .25rem; margin-bottom: 1.3rem; padding: .35rem; border: 1px solid #d6e0d7; border-radius: .85rem; background: #fffffff2; box-shadow: 0 .7rem 2rem #153b2314; backdrop-filter: blur(12px); }
  .browse-mobile-menu { position: relative; min-width: 0; }
  .browse-mobile-menu > summary, .browse-mobile-filter { display: flex; min-width: 0; min-height: 3rem; flex-direction: column; justify-content: center; padding: .4rem .65rem; border: 0; border-radius: .55rem; color: var(--ink); text-decoration: none; cursor: pointer; list-style: none; }
  .browse-mobile-menu > summary::-webkit-details-marker { display: none; }
  .browse-mobile-menu > summary:hover, .browse-mobile-menu[open] > summary, .browse-mobile-filter:hover { background: var(--moss-a); }
  .browse-mobile-nav span { color: var(--slate); font-size: .6rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
  .browse-mobile-nav strong { overflow: hidden; font-size: .75rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
  .browse-mobile-options { position: absolute; left: 0; top: calc(100% + .45rem); z-index: 2; display: grid; width: min(18rem, calc(100vw - 3rem)); max-height: min(24rem, 65vh); overflow-y: auto; padding: .45rem; border: 1px solid var(--mist); border-radius: .75rem; background: #fff; box-shadow: 0 1rem 2.5rem #153b2324; }
  .browse-mobile-menu--type .browse-mobile-options { right: 0; left: auto; }
  .browse-mobile-options a, .browse-mobile-options span.is-empty { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .7rem; border-radius: .45rem; color: var(--slate); font-size: .8rem; text-decoration: none; }
  .browse-mobile-options a:hover, .browse-mobile-options a[aria-current] { background: var(--moss-a); color: var(--moss); }
  .browse-mobile-options a[aria-current] { font-weight: 600; }
  .browse-mobile-options span.is-empty { opacity: .45; cursor: default; }
  .browse-mobile-options small { color: inherit; font-variant-numeric: tabular-nums; }
  .browse-mobile-filter { align-items: center; padding-inline: .8rem; }
  .browse-layout { grid-template-columns: minmax(0, 1fr); gap: 1.3rem; }
  .filter-panel form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
  .filter-actions { align-content: center; }
  .detail-layout { grid-template-columns: minmax(0, 1fr) 17rem; gap: 1.5rem; }
  .purchase-panel { padding: 1.2rem; }
  .detail-price { font-size: 1.6rem; }
  .contact-action { font-size: .75rem; gap: .5rem; padding-inline: .7rem; }
  .detail-facts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 39.999rem) {
  .discovery-section { margin-top: 1.5rem; padding-top: 2rem; }
  .discovery-section h2, .city-section h2 { font-size: 1.5rem; }
  .section-intro { font-size: .8rem; }
  .city-section { padding: 1.3rem; margin-top: 2rem; }
  .city-section .section-heading > .icon { display: none; }
  .city-grid { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .city-grid a { padding: .9rem 1rem; }
  .browse-heading { padding-block: .25rem 1.4rem; }
  .browse-heading h1 { font-size: 2rem; }
  .browse-heading .browse-summary { font-size: .8rem; }
  .filter-panel form { grid-template-columns: minmax(0, 1fr); }
  .filter-group input:not([type=checkbox]), .filter-group select, .sort-control select { font-size: 1rem; }
  .check-label { min-height: 2.5rem; font-size: .85rem; }
  .filter-title, .filter-group legend { font-size: .85rem; }
  .results-toolbar { gap: .6rem; }
  .results-toolbar .result-count { flex-basis: 100%; }
  .sort-control { flex: 1; }
  .sort-control select { width: 100%; max-width: none; font-size: .8rem; }
  .browse-grid .card-body { padding: 1rem; }
  .browse-grid .card-body h3 { font-size: 1rem; }
  .browse-rows .row { grid-template-columns: 6rem minmax(0, 1fr); }
  .row .card-category, .row .card-seller { font-size: .65rem; }
  .row .card-excerpt { font-size: .75rem; }
  .detail-topline { margin-top: 1.2rem; }
  .detail-title { font-size: 1.9rem; }
  .detail-place { font-size: .8rem; }
  .detail-place a { margin-left: 0; flex-basis: 100%; }
  .detail-layout { display: flex; flex-direction: column; gap: 1.5rem; }
  .detail-main { display: contents; }
  .listing-gallery { order: 0; width: 100%; }
  .detail-aside { position: static; order: 1; width: 100%; }
  .detail-sections { order: 2; width: 100%; margin-top: 0; gap: 1.3rem; }
  .detail-section { order: 3; width: 100%; padding-top: .5rem; }
  .gallery-hint { bottom: .65rem; right: .65rem; font-size: .7rem; }
  .gallery-thumbnails { grid-template-columns: repeat(auto-fill, minmax(4rem, 1fr)); }
  .gallery-thumbnails img { height: 4rem; }
  .purchase-panel { padding: 1.25rem; }
  .detail-price { font-size: 1.9rem; }
  .gallery-dialog { width: calc(100vw - 1rem); padding: .75rem; }
  .gallery-dialog > img { height: calc(100dvh - 13rem); }
}

.masthead-auth { flex-shrink: 0; white-space: nowrap; }
.masthead-auth .linkish { border: 0; background: transparent; color: inherit; font: inherit; padding: 0; }
@media (max-width: 39.999rem) { .masthead-inner { column-gap: .75rem; } .masthead-auth { font-size: .75rem; } }

.footer-links { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; max-width: 22rem; font-size: .8rem; }
.footer-links a { color: var(--slate); }
.seller-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1rem; }
.listing-editor { padding-block: 2rem 4rem; max-width: 44rem; }
.listing-form label, .listing-form legend { display: block; margin-top: 1rem; font-size: .75rem; color: var(--slate); }
.listing-form input[type=text], .listing-form input[type=date], .listing-form input[type=file], .listing-form select, .listing-form textarea {
  width: 100%; margin-top: .3rem; padding: .65rem .75rem; border: 1px solid var(--mist); border-radius: .5rem; background: #fff;
}
.listing-form textarea { min-height: 8rem; resize: vertical; }
.listing-form fieldset { margin-top: 1.5rem; padding: 0; border: 0; }
.listing-form legend { font-size: .9rem; color: var(--ink); font-weight: 600; }
.listing-form .form-actions { margin-top: 1.5rem; }
.listing-status-actions, .photo-manager-block { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--mist); }
.photo-manager { list-style: none; padding: 0; margin: 1rem 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: .75rem; }
.photo-manager li { display: grid; gap: .4rem; }
.photo-order { flex-basis: 100%; }
.preview-banner { padding: .8rem 0; font-size: .9rem; background: #fff8e8; }
.error-page { padding-block: 4rem 6rem; max-width: 36rem; }
.error-page h1 { font-size: 2.2rem; margin: .3rem 0 1rem; }
.page-prose, .seller-page { padding-bottom: 4rem; }
.seller-hero { padding-block: 1.5rem 1rem; }
.seller-public-links { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
.auth-panel textarea { width: 100%; margin-top: .3rem; padding: .65rem .75rem; border: 1px solid var(--mist); border-radius: .5rem; }
.auth-panel h2 { margin-top: 2rem; font-size: 1.1rem; }


/* Full-width categories and types, with filters beside the results. */
.browse-type-picker h2 { margin: 0 0 .3rem; font-size: .75rem; color: var(--slate); font-weight: 500; letter-spacing: 0; }
.browse-type-picker .type-tabs { display: flex; flex-wrap: wrap; overflow: visible; margin: 0 0 .9rem; padding: 0; gap: .15rem 1.15rem; border-bottom: 1px solid var(--mist); }
.browse-type-picker .chip { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.7rem; padding: .5rem .1rem; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-size: .8rem; white-space: nowrap; background: transparent; color: var(--ink); }
.browse-type-picker .chip:hover { color: var(--moss); border-bottom-color: #b1c5b2; }
.browse-type-picker .chip[aria-current] { color: var(--moss); border-bottom-width: 3px; border-bottom-color: var(--moss); font-weight: 700; }
.browse-type-picker .chip.is-empty { opacity: .45; cursor: default; }
.browse-type-picker .chip.is-empty:hover { color: inherit; border-bottom-color: transparent; }
.browse-type-picker .chip-n { font-size: .65rem; font-weight: 400; color: var(--slate); opacity: 1; }
.browse-type-picker .chip[aria-current] .chip-n { color: var(--moss); }
.browse-page > .crumbs { margin: 0; padding-block: 1.15rem 1rem; }
.browse-heading { padding-block: .3rem 1.4rem; }
.browse-heading h1 { max-width: 38ch; font-size: clamp(1.8rem, 3vw, 2.35rem); }
.browse-heading .eyebrow { margin-bottom: .45rem; font-size: .68rem; }
.browse-heading .browse-summary { margin-top: .6rem; font-size: .82rem; }
.browse-empty { padding: 2rem 1.5rem; margin-top: .7rem; border: 1px solid var(--mist); border-radius: .8rem; }
.browse-empty h2 { max-width: 38ch; font-size: 1.35rem; line-height: 1.4; }
.browse-empty > p { max-width: 50ch; font-size: .9rem; line-height: 1.7; }
.empty-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.empty .empty-actions .btn { margin-top: 0; }
.empty-reset { display: inline-block; margin-top: 1rem; color: var(--slate); font-size: .8rem; }
.browse-results > .locality-chips { margin: 0 0 .6rem; padding-block: .35rem .8rem; gap: .4rem; align-items: center; }
.locality-chips .chip { font-size: .7rem; padding: .35rem .65rem; max-width: min(100%, 16rem); white-space: normal; overflow-wrap: anywhere; }
.locality-label { display: inline-flex; align-items: center; gap: .3rem; color: var(--slate); font-size: .7rem; margin-right: .2rem; }
.locality-label .icon { width: .95rem; height: .95rem; }
.detail-back-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.4rem; padding: .6rem .85rem; border: 1px solid var(--mist); border-radius: .55rem; color: var(--moss); font-size: .8rem; font-weight: 600; text-decoration: none; }
.detail-back-link:hover { background: var(--moss-a); border-color: #9bad9c; }
.detail-back-link + .crumbs { padding-top: 1rem; }
.category-switcher summary:focus-visible { outline: 3px solid #548641; outline-offset: 3px; }
@media (min-width: 60rem) {
  .browse-page > .crumbs { padding-block: 1.15rem 1rem; }
  .browse-heading { padding-top: .35rem; }
  .browse-heading .eyebrow { margin-bottom: .45rem; }
  .browse-heading .browse-summary { margin-top: .65rem; }
  .browse-layout { column-gap: 1.75rem; }
}
@media (max-width: 59.999rem) {
  .browse-results > .locality-chips { margin-top: -.3rem; }
}

.wide-category-nav { margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--mist); }
.category-root-tabs { display: flex; flex-wrap: wrap; gap: .1rem 1.2rem; border-bottom: 1px solid var(--mist); }
.category-root-tabs a { display: inline-flex; align-items: center; min-height: 2.65rem; margin-bottom: -1px; padding: .45rem .1rem; border-bottom: 2px solid transparent; text-decoration: none; font-size: .8rem; color: var(--slate); }
.category-root-tabs a:hover { color: var(--moss); border-bottom-color: #b1c5b2; }
.category-root-tabs a[aria-current] { color: var(--moss); border-bottom-color: var(--moss); font-weight: 600; }
@media (max-width: 59.999rem) {
  .category-root-tabs { display: none; }
}
.category-options-heading { display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: .35rem .85rem; margin: .75rem 0 .7rem; color: var(--slate); font-size: .7rem; }
.category-options-heading > span { font-weight: 500; }
.category-options-heading a { color: var(--slate); opacity: .55; font-size: .65rem; font-weight: 400; text-decoration: none; }
.category-options-heading a:hover { color: var(--moss); opacity: 1; text-decoration: underline; }
.category-options-chips { display: flex; flex-wrap: wrap; gap: .4rem; overflow: visible; padding-bottom: .25rem; }
.category-options-chips a { display: inline-flex; align-items: center; min-height: 2.15rem; padding: .35rem .75rem; border: 1px solid var(--mist); border-radius: .45rem; text-decoration: none; font-size: .8rem; color: var(--moss); background: #fff; overflow-wrap: anywhere; }
.category-options-chips a:hover { border-color: var(--moss); background: color-mix(in srgb, var(--moss) 10%, #fff); }
.category-options-chips a[aria-current] { background: color-mix(in srgb, var(--moss) 10%, #fff); border-color: var(--moss); font-weight: 600; }
.category-options-more { margin-top: .35rem; }
.category-options-more > summary { display: flex; align-items: center; gap: .5rem; width: fit-content; min-height: 2rem; padding-inline: .65rem; font-size: .75rem; color: var(--moss); cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: .2em; }
.category-options-more > summary::-webkit-details-marker { display: none; }
.category-options-more .less-label, .category-options-more[open] .more-label { display: none; }
.category-options-more[open] .less-label { display: inline; }
.category-options-more[open] summary > span:last-child { transform: rotate(180deg); }
.category-options-more summary:focus-visible { outline: 3px solid #548641; outline-offset: 3px; }
.category-options-more .category-options-chips { margin-top: .35rem; }
@media (min-width: 60rem) {
  .browse-heading { padding-bottom: .6rem; }
  .browse-page > .browse-type-picker { margin-bottom: .35rem; }
}

/* Compact catalogue spacing and uncropped product photography. */
.card-media-product { background: #fff; }
.card-media-product > img { object-fit: contain; padding: .65rem; }
.card-link:hover .card-media-product > img { transform: none; }
@media (min-width: 60rem) {
  .browse-page > .crumbs { padding-block: .9rem .65rem; }
  .browse-heading .browse-summary { margin-top: .4rem; }
  .wide-category-nav { margin-bottom: .6rem; padding-bottom: .7rem; }
  .category-options-heading { margin-top: .5rem; }
  .browse-page > .browse-type-picker { padding-top: .75rem; }
  .filter-panel { background: #fff; border-radius: .65rem; }
  .filter-panel > summary { padding: .85rem 1rem; }
  .filter-panel form { padding: 0 1rem 1rem; }
  .filter-group { border-top: 0; padding: .6rem 0; }
  .filter-group legend, .filter-title { margin-bottom: .5rem; }
}

/* B4 category picker: global tree in a dialog, nearby categories on the page. */
.catalogue-b4{margin:.5rem 0 1.1rem}.category-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:1.8rem;width:fit-content;max-width:100%;min-width:20rem;border:1px solid #9eb7a3;border-radius:.55rem;background:#fff;padding:.8rem 1rem;cursor:pointer;list-style:none}.category-picker-trigger::-webkit-details-marker{display:none}.category-picker-trigger small{display:block;color:var(--slate);font-size:.7rem;margin-bottom:.4rem;line-height:1.5}.category-picker-trigger strong{font-size:.9rem}.category-picker-trigger>.icon{width:1.2rem;height:1.2rem;flex-shrink:0}.category-picker-trigger[aria-expanded=true]>.icon{transform:rotate(180deg)}.catalogue-b4 .category-options-heading{justify-content:flex-start;margin:.85rem 0 .55rem}.catalogue-b4 .category-options-heading>span{display:none}.catalogue-b4 .category-options-heading a{display:inline-flex;align-items:center;gap:.4rem}.catalogue-b4 .icon{width:1rem;height:1rem}.category-picker-fallback-links{display:flex;flex-direction:column;max-height:22rem;overflow:auto;padding:1rem;gap:.6rem}.category-picker-dialog{width:min(65rem,calc(100vw - 3rem));max-width:none;max-height:calc(100dvh - 3rem);padding:0;border:1px solid #cfddce;border-radius:.8rem;color:var(--ink);box-shadow:0 20px 65px #173d3433}.category-picker-dialog::backdrop{background:#102f2450}.category-picker-dialog header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 1.5rem .8rem}.category-picker-dialog h2{font-size:1.15rem;margin:0}.category-picker-dialog header p{font-size:.75rem;color:var(--slate);margin:.45rem 0 0}.category-picker-dialog button{font:inherit;color:inherit;cursor:pointer}.category-picker-dialog [data-picker-close]{display:grid;place-items:center;width:2.25rem;height:2.25rem;background:#f0f5ed;border:0;border-radius:50%;flex-shrink:0}.category-picker-search{padding:0 1.5rem 1rem}.category-picker-search input{width:100%;padding:.8rem;border:1px solid #d5dfd1;border-radius:.45rem;background:#f7faf5;font:inherit;font-size:.85rem;color:var(--ink)}.category-picker-columns{display:flex;padding:0 .9rem 1.2rem;overflow-x:auto}.category-picker-columns section{flex:1;min-width:13rem;padding:0 .6rem}.category-picker-columns section+section{border-left:1px solid var(--mist)}.category-picker-columns h3{font-size:.75rem;color:var(--slate);padding:.6rem;margin:0}.category-picker-columns a,.category-picker-columns button{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.7rem .6rem;border:0;border-radius:.35rem;background:none;text-align:left;text-decoration:none;font-size:.8rem;line-height:1.5;color:var(--ink)}.category-picker-columns a:hover,.category-picker-columns button:hover,.category-picker-columns [aria-current]{background:#eaf3e5}.category-picker-columns [aria-current]{font-weight:600;color:var(--moss)}.category-picker-columns .icon{flex-shrink:0}.category-picker-columns .category-picker-all{border-bottom:1px solid var(--mist);border-radius:0;margin-bottom:.5rem;color:var(--moss)}.category-picker-dialog footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:1rem 1.5rem;background:#f7faf5;border-top:1px solid var(--mist);font-size:.75rem;color:var(--slate)}.category-picker-dialog footer a{color:var(--moss)}.category-picker-back{display:none}.category-picker-columns.is-search{display:block}.category-picker-columns.is-search a{display:block;border-bottom:1px solid var(--mist)}.category-picker-columns.is-search small{display:block;margin-top:.3rem;color:var(--slate);font-weight:400}.category-picker-trigger:focus-visible,.category-picker-dialog :focus-visible{outline:3px solid #648d47;outline-offset:3px}
@media(max-width:959px){.category-picker-trigger{width:100%;min-width:0}.catalogue-b4 .category-options-chips{display:flex;flex-wrap:wrap}.category-picker-dialog{width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem)}.category-picker-columns{display:block}.category-picker-columns section{border:0!important;padding:0 .3rem}.category-picker-columns section[hidden]{display:none}.category-picker-back{display:flex;align-items:center;gap:.4rem;margin:0 1.5rem .8rem;padding:.4rem 0;border:0;background:none;font-size:.8rem!important}.category-picker-back[hidden]{display:none}.category-picker-back:disabled{color:var(--slate)}.category-picker-search input{font-size:1rem}.browse-mobile-nav{grid-template-columns:1fr auto!important}.category-picker-dialog header{padding:1rem}.category-picker-dialog h2{font-size:1rem}}

.header-category-picker .category-picker-trigger{border:0;padding:.6rem .3rem;min-width:0;gap:.6rem;background:transparent;white-space:nowrap}.header-category-picker .category-picker-trigger strong{font-size:.85rem}.header-category-picker .category-picker-fallback[open] .category-picker-fallback-links{position:absolute;right:1rem;top:100%;background:white;z-index:30;max-width:35rem;box-shadow:0 10px 30px #173d3433}.header-category-picker .category-picker-dialog .icon{width:1rem;height:1rem}

.catalogue-nav button { background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-family: inherit; cursor: pointer; }
.category-picker-dialog footer { gap: 1rem; flex-wrap: wrap; }

/* Header category navigation expands beneath the type bar without a modal backdrop. */
.header-category-picker .category-picker-dropdown {
  position: absolute; inset: 100% 0 auto; margin: 0 auto;
  width: min(1200px, calc(100% - 3rem)); max-height: var(--dropdown-height, 65dvh);
  border-radius: 0 0 .8rem .8rem; border-top: 0; overflow-y: auto;
  box-shadow: 0 14px 28px #173d3420; background: #fff;
}
.category-picker-dropdown header { padding: 1rem 1.5rem .6rem; }
.category-picker-dropdown .category-picker-search { max-width: 30rem; }
.catalogue-nav button[aria-expanded="true"] { color: var(--moss); border-bottom-color: var(--moss); font-weight: 600; background: var(--canvas); }
@media(min-width:960px) {
  .category-picker-dropdown .category-picker-columns section:only-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 1.5rem; }
  .category-picker-dropdown .category-picker-columns section:only-child h3 { grid-column: 1 / -1; }
}
@media(max-width:959px) {
  .header-category-picker .category-picker-dropdown { width: calc(100% - 1.5rem); }
}

.category-picker-dropdown [data-picker-all] { border: 0; padding: .25rem 0; background: transparent; color: var(--moss); text-decoration: underline; text-underline-offset: .2em; }
.masthead:has(.category-picker-dropdown[open]) .catalogue-nav button[aria-current]:not([aria-expanded="true"]) { border-bottom-color: transparent; font-weight: 400; color: var(--slate); }

.save-listing { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; border: 1px solid #ffffffcc; border-radius: 50%; background: #fffffff2; color: var(--slate); cursor: pointer; box-shadow: 0 2px 8px #16382614; }
.listing-card > .save-listing { position: absolute; top: .7rem; right: .7rem; z-index: 2; }
.save-listing .icon { width: 1.15rem; height: 1.15rem; }
.save-listing:hover, .save-listing[aria-pressed="true"] { color: var(--moss); border-color: #c5d6c4; }
.save-listing[aria-pressed="true"] .icon { fill: currentColor; }
.save-listing--inline { border-color: var(--mist); box-shadow: none; background: #fff; }
.row-aside { display: flex; flex-direction: column; align-items: flex-end; gap: .65rem; }
.saved-page { padding-bottom: 3rem; }
.intent-strip { padding-block: .5rem 1.5rem; }
.intent-strip .chips { padding-top: 0; }

/* Text fields retain their normal border when focused. */
input:focus, input:focus-visible, textarea:focus, textarea:focus-visible,
.auth-panel input:focus-visible,
.category-picker-dialog input:focus, .category-picker-dialog input:focus-visible {
  outline: none;
  box-shadow: none;
}
