/* Public pages share the homepage's type, colours and spacing. */
.public-main { padding-top: 34px; padding-bottom: 80px; min-height: 65vh; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; color: #526257; font-size: 13px; margin-bottom: 36px; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 4px; }
.page-heading h1 { font: normal clamp(36px, 5vw, 64px)/1.08 var(--serif); letter-spacing: -.04em; max-width: 22ch; margin: 12px 0 20px; white-space: pre-line; }
.public-main > p, .page-section > p, .partner-intro > p { max-width: 76ch; font-size: 18px; line-height: 1.8; }
.public-main h2 { font: normal clamp(25px, 3vw, 36px)/1.2 var(--serif); letter-spacing: -.025em; }
.page-section { margin-top: 44px; padding-top: 24px; border-top: 1px solid #d7dfd1; scroll-margin-top: 120px; }
.page-actions, .directory-contacts { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 24px 0; }
.directory-filters { display: grid; grid-template-columns: 2fr 1.2fr auto auto; align-items: end; gap: 16px; padding: 24px; margin: 28px 0; border-radius: 12px; background: #e9eee4; }
.directory-filters label { display: grid; gap: 8px; font-size: 13px; font-weight: 700; }
.directory-filters input, .directory-filters select { width: 100%; min-width: 0; height: 46px; padding: 10px; border: 1px solid #a4b4a0; border-radius: 5px; background: #fff; color: #13291f; font: inherit; }
.public-grid, .opportunity-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.directory-entry { min-width: 0; overflow-wrap: anywhere; }
.directory-entry-heading { display: flex; align-items: center; gap: 16px; }
.directory-entry-heading h2 { font-size: 28px; margin: 8px 0 16px; }
.directory-entry p { line-height: 1.7; }
.directory-logo { flex: 0 0 80px; width: 80px; height: 80px; }
.directory-logo img { width: 100%; height: 100%; object-fit: contain; }
.directory-initial { display: grid; place-items: center; flex: 0 0 60px; width: 60px; height: 60px; border-radius: 50%; background: #e8eee2; color: var(--green); font: 32px var(--serif); }
.verification-badge { display: inline-block; padding: 6px 10px; border-radius: 15px; font-size: 11px; line-height: 1.4; font-weight: 700; }
.is-verified { color: #17513a; background: #e0efdf; }
.is-unverified { color: #65521e; background: #f5edcf; }
.directory-entry .verification-note, .small-note { font-size: 12px; color: #526257; }
.enquiry-panel { margin-top: 44px; padding: clamp(24px,4vw,42px); background: #e9eee4; border-radius: 14px; scroll-margin-top: 130px; }
.enquiry-panel p { max-width: 75ch; line-height: 1.8; }
.opportunity-grid { margin: 32px 0; }
.opportunity-card { padding: 28px; background: #fff; border: 1px solid #d8e0d2; border-radius: 12px; }
.opportunity-card h2 { margin-top: 0; }
.opportunity-card p { line-height: 1.8; }
.partner-home { display: grid; grid-template-columns: 2fr 1fr; align-items: center; gap: 40px; padding: 40px; border-radius: 14px; background: #e9eee4; margin-bottom: 40px; }
.partner-home h2 { font: normal 42px/1.1 var(--serif); margin: 10px 0; }
.partner-home p { line-height: 1.8; }
.partner-home .page-actions { align-items: flex-start; justify-content: flex-start; }
.public-main .event-feature { margin: 28px 0; }
.page-card-photo { width: min(100%,680px); aspect-ratio: 16/9; margin: 24px 0; border-radius: 12px; overflow: hidden; }
.page-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.page-event-photo { max-width: 800px; margin: 20px 0 32px; }
.page-event-photo img { display: block; width: 100%; max-height: 720px; object-fit: contain; }
.public-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.public-gallery figure { margin: 0; scroll-margin-top: 120px; }
.public-gallery .photo { aspect-ratio: 4/3; overflow: hidden; border-radius: 9px; }
.public-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.public-gallery a:hover img { transform: scale(1.025); }
.public-gallery figcaption { font-size: 13px; line-height: 1.5; margin: 10px 0 24px; }
.public-page .constitution-section { scroll-margin-top: 130px; }
.news-article { border-bottom: 1px solid #d6dfd0; padding: 20px 0; }
.public-page .site-header .brand img { flex-shrink: 0; }
.public-main a:not(.button):not(.sponsor-logo):not([data-gallery-photo]):hover { text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:1000px){.directory-filters{grid-template-columns:1fr 1fr}.partner-home{grid-template-columns:1fr;gap:0}.public-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.public-grid,.opportunity-grid,.directory-filters{grid-template-columns:1fr}.public-main{padding-top:22px;padding-bottom:44px}.breadcrumbs{margin-bottom:24px}.partner-home{padding:24px}.public-gallery{gap:14px}.directory-entry{padding:20px}.enquiry-panel .button{white-space:normal;text-align:center}.public-main .event-feature{display:block}.public-main .event-feature>.photo{min-height:220px}}
