/* Shared public-page extensions. Geometry reuses Contact/About/Article tokens;
 * these layouts are working adaptations, not additional owner-supplied PNGs. */
.public-intro { padding-top: var(--catalog-intro-top); margin-bottom: var(--space-10); }
.public-intro h1 { margin: 0 0 var(--space-6); font-size: var(--font-size-48); line-height: var(--line-height-48-48); letter-spacing: var(--letter-spacing-heading); overflow-wrap: anywhere; }
.public-intro > p { margin-bottom: 0; }
.policy-copy { max-width: var(--about-content-width); overflow-wrap: anywhere; }
.policy-copy p { margin-bottom: var(--space-6); }
.policy-copy p:last-child { margin-bottom: 0; }
.policy-copy strong { font-weight: var(--font-weight-bold); }
.policy-copy a, .search-result a { color: var(--color-primary); }
.policy-copy a { text-decoration: underline; text-underline-offset: var(--space-1); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-10) var(--grid-gap); }
.gallery-card { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; color: var(--color-primary); }
.gallery-card img { width: 100%; aspect-ratio: var(--about-gallery-compact-ratio); object-fit: cover; border-radius: var(--radius-card-image); }
.gallery-card > span { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); font-size: var(--font-size-22); line-height: var(--line-height-28-38); font-weight: var(--font-weight-semibold); }
.gallery-card .icon { flex-shrink: 0; }
.gallery-card:hover > span { text-decoration: underline; text-underline-offset: var(--space-1); }
.gallery-detail { max-width: var(--about-content-width); }
.gallery-detail figure { margin: 0; }
.gallery-detail figure img { width: 100%; max-height: var(--gallery-detail-height); object-fit: contain; background: var(--surface-soft); border-radius: var(--radius-card-image); }
.gallery-detail figcaption { margin-top: var(--space-3); color: var(--text-secondary); font-size: var(--caption-size); line-height: var(--caption-line-height); }
.gallery-navigation { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-8); }
.public-search { display: flex; gap: var(--space-3); max-width: var(--about-content-width); margin-bottom: var(--space-6); }
.public-search input { width: 100%; min-width: 0; min-height: var(--field-min-height); padding: var(--space-4); border: var(--border-width) solid var(--border-color); border-radius: var(--radius-field); color: var(--text-primary); background: var(--surface-page); font: inherit; }
.search-results { max-width: var(--about-content-width); }
.search-result { padding-block: var(--space-8); border-bottom: var(--border-width) solid var(--border-color); overflow-wrap: anywhere; }
.search-result:first-child { padding-top: 0; }
.search-result h2 { margin: 0 0 var(--space-3); font-size: var(--font-size-28); line-height: var(--line-height-28-38); font-weight: var(--font-weight-semibold); }
.search-result p { margin-bottom: var(--space-4); }
.search-result a:hover { text-decoration: underline; text-underline-offset: var(--space-1); }
.search-result-link { display: inline-flex; gap: var(--space-3); align-items: center; font-weight: var(--font-weight-semibold); }
.search-empty { padding: var(--space-8); border-radius: var(--radius-card-image); background: var(--surface-soft); }
.search-empty h2 { font-size: var(--font-size-28); line-height: var(--line-height-28-38); }
.search-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-6); margin-top: var(--space-10); }
@media (max-width: 64rem) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 48rem) {
  .public-intro h1 { font-size: var(--font-size-32); line-height: var(--line-height-32-40); }
  .gallery-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .public-search { flex-direction: column; }
  .public-search .button { align-self: flex-start; }
  .search-empty { padding: var(--space-6); }
}
