/* Catalogue and current-feature additions; shared site palette and typography. */
[hidden] { display: none !important; }
.catalogue { padding: 140px 0 80px; }
.catalogue__intro { max-width: 820px; margin-bottom: 40px; }
.catalogue__intro h1 { max-width: 800px; }
.catalogue__intro .lede { font-size: 1.2rem; }
.catalogue__stats { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 24px 0; }
.catalogue__stats span { color: var(--text-dim); }
.catalogue__stats b { color: var(--text); font-size: 1.5rem; margin-right: 6px; }
.landmark-filters { display: grid; grid-template-columns: 2fr 1fr auto; gap: 16px; align-items: end; padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.landmark-filters label { display: grid; gap: 6px; font-size: .9rem; font-weight: 600; }
.landmark-filters input, .landmark-filters select { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--night); color: var(--text); font: inherit; color-scheme: dark; }
.landmark-filters button { cursor: pointer; font-family: inherit; min-height: 46px; }
.landmark-filters :focus-visible, .landmark-card a:focus-visible { outline: 3px solid var(--moon); outline-offset: 4px; }
.catalogue__count { margin: 16px 0 30px; font-variant-numeric: tabular-nums; }
.landmark-country { margin-top: 44px; }
.landmark-country h2 { scroll-margin-top: 100px; font-size: 1.7rem; display: flex; gap: 12px; align-items: center; }
.landmark-country h2 span { color: var(--text-dim); font-size: 1rem; font-weight: 400; }
.landmark-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 20px; }
.landmark-card { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--surface); scroll-margin-top: 100px; }
.landmark-card__image { display: block; position: relative; background: #495a76; }
.landmark-card__image img { width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.landmark-card__notice { position: absolute; inset: 0; display: grid; place-content: center; padding: 24px; background: rgba(17, 24, 35, .86); color: #f0f3f8; font-size: .9rem; line-height: 1.5; text-align: center; }
.landmark-card__body { padding: 20px; }
.landmark-card__body h3 { font-size: 1.1rem; line-height: 1.35; }
.landmark-card__body p { margin: 4px 0; font-size: .88rem; }
.landmark-card__coordinates { font-variant-numeric: tabular-nums; }
.landmark-card__source { display: inline-block; margin-top: 12px; font-size: .85rem; color: var(--moon); text-underline-offset: 3px; }
.catalogue__credits { margin-top: 50px; max-width: 850px; }
.landmark-teaser { margin-top: 36px; }
.landmark-teaser .landmark-card__body { padding: 14px 18px; }
.desktop-preview { margin: 28px 0 0; }
.desktop-preview img { width: 100%; border: 1px solid var(--line); border-radius: 12px; }
.desktop-preview figcaption { margin-top: 12px; font-size: .9rem; color: var(--text-dim); }
.source-list li { margin-bottom: 14px; }
@media (max-width: 900px) { .landmark-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .landmark-filters { grid-template-columns: 1fr 1fr; } .landmark-filters button { justify-self: start; } }
@media (max-width: 560px) { .catalogue { padding-top: 110px; } .landmark-grid, .landmark-filters { grid-template-columns: 1fr; } .landmark-filters { padding: 18px; } }
