.sg-public{background:#faf8f1;color:#183f30;padding:50px 0 76px}.sg-shell{max-width:1200px;margin:auto;padding:0 24px}.sg-hero{padding:18px 0 32px;max-width:790px}.sg-hero>a,.sg-hero>span{font-size:13px;color:#51675b}.sg-eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;margin:34px 0 16px}.sg-hero h1{font-family:Georgia,serif;font-size:clamp(36px,5vw,62px);line-height:1.1;letter-spacing:-1px;color:#183f30;margin:0 0 20px}.sg-hero h1 em{font-weight:400;color:#71844b}.sg-hero>p:last-child{font-size:17px;max-width:600px;color:#5a695e;line-height:1.8}.sg-filters{display:flex;gap:9px;flex-wrap:wrap;padding:18px 0 30px;border-bottom:1px solid #dce2d5}.sg-filters a{padding:10px 17px;border:1px solid #cbd5c4;border-radius:30px;text-decoration:none;color:#304c39;font-size:14px;background:#fff}.sg-filters a[aria-current]{background:#244c36;color:#fff;border-color:#244c36}.sg-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 20px;gap:12px}.sg-heading h2{font-family:Georgia,serif;font-size:26px;margin:0}.sg-heading span,.sg-count{color:#64725f;font-size:14px}.sg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.sg-photo{margin:0;background:white;border-radius:16px;overflow:hidden;border:1px solid #e0e5d9}.sg-photo>a{display:block;position:relative;overflow:hidden;background:#f0f2eb;aspect-ratio:4/3}.sg-photo img{box-sizing:border-box;position:absolute;top:50%;left:50%;width:auto;height:auto;max-width:calc(100% - 16px);max-height:calc(100% - 16px);aspect-ratio:auto;object-fit:contain;object-position:center;display:block;padding:0;border-radius:12px;transform:translate(-50%,-50%);transition:none}.sg-photo>a:hover img{transform:translate(-50%,-50%)}.sg-expand{position:absolute;right:12px;bottom:12px;background:#fff;color:#183f30;width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.sg-photo figcaption{padding:18px 20px 21px}.sg-tag{text-transform:uppercase;font-size:10px;letter-spacing:1.4px;color:#697c50;font-weight:700}.sg-photo h3{font-size:18px;line-height:1.45;margin:9px 0 0;color:#183f30;overflow-wrap:anywhere}.sg-count{text-align:center;margin:30px 0 12px}.sg-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:26px 0}.sg-pagination a,.sg-pagination span{min-width:38px;min-height:40px;padding:9px 12px;border:1px solid #cdd8ca;border-radius:8px;text-align:center;color:#244c36;background:white;text-decoration:none}.sg-pagination [aria-current]{background:#244c36;color:white}.sg-pagination [aria-disabled]{opacity:.45}.sg-empty{grid-column:1/-1;text-align:center;background:#eff3e9;border:1px dashed #b5c2a8;border-radius:16px;padding:50px 20px}.sg-lightbox{border:0;border-radius:16px;background:#112c21;color:white;width:min(1060px,94vw);max-height:94dvh;padding:0}.sg-lightbox::backdrop{background:rgba(5,18,10,.85)}.sg-viewer{padding:48px 20px 22px;text-align:center}.sg-viewer>img{max-width:100%;height:65dvh;object-fit:contain;display:block;margin:auto}.sg-viewer>p{margin:15px auto;overflow-wrap:anywhere}.sg-close{position:absolute;right:12px;top:7px;background:none;border:none;color:white;font-size:32px;cursor:pointer}.sg-viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:12px}.sg-viewer-controls button{border:1px solid #6d8976;background:#244c36;color:white;border-radius:8px;padding:10px 14px;cursor:pointer}.sg-viewer-controls button:disabled{opacity:.4;cursor:default}.sg-public a:focus-visible,.sg-lightbox button:focus-visible,.sg-admin :focus-visible{outline:3px solid #cb9d42;outline-offset:3px}.sg-admin{color:#244436;min-width:0}.sg-admin *{box-sizing:border-box}.sg-admin .sg-card{padding:22px;border:1px solid #dce4dc;border-radius:15px;background:white;min-width:0}.sg-admin h2,.sg-admin h3{overflow-wrap:anywhere;color:#214b35;margin:12px 0}.sg-admin p{overflow-wrap:anywhere;line-height:1.7}.sg-admin .sg-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:16px 0 22px}.sg-admin .sg-toolbar form{margin:0}.sg-admin label{display:block;font-weight:600;min-width:0}.sg-admin label small{display:block;font-weight:400;color:#647268;margin:5px 0}.sg-admin input,.sg-admin select,.sg-admin textarea{display:block;width:100%;max-width:100%;border:1px solid #c8d5cc;padding:11px 12px;border-radius:8px;margin-top:7px;background:white;color:#243d2e;font:inherit}.sg-admin .sg-form{max-width:1000px;display:grid;gap:18px;margin:18px 0 30px}.sg-btn{display:inline-block!important;background:#255338!important;color:#fff!important;border:1px solid #255338!important;border-radius:8px;padding:11px 17px;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.4}.sg-btn.sg-secondary{background:#edf3e8!important;color:#255338!important}.sg-admin .sg-danger{border:0;background:#fff0ed;color:#a42d25;padding:10px 13px;border-radius:8px;cursor:pointer}.sg-admin-photo{width:100%;aspect-ratio:4/3;object-fit:cover;height:auto;border-radius:9px}.sg-edit-preview{max-width:100%;width:420px;max-height:350px;object-fit:contain;background:#f1f4ee;border-radius:12px}.sg-upload-row{background:#f6f8f3;padding:18px;border-radius:10px;display:grid;gap:15px;margin-bottom:14px}.sg-upload-row>.sg-danger{justify-self:end}.sg-upload-preview{width:140px;height:100px;object-fit:contain}.sg-notice,.sg-errors{padding:16px;border-radius:10px;margin:15px 0;background:#e4f2e3}.sg-errors{background:#fff1ee;color:#8c281e}.sg-admin .sg-status{font-weight:700}.sg-admin [hidden],.sg-lightbox [hidden]{display:none!important}@media(max-width:1000px){.sg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.sg-shell{padding:0 15px}.sg-public{padding-top:25px}.sg-grid{gap:12px}.sg-photo figcaption{padding:13px}.sg-photo h3{font-size:15px}.sg-tag{font-size:9px;letter-spacing:.7px}.sg-filters a{padding:9px 13px;font-size:12px}.sg-admin .sg-grid{grid-template-columns:1fr}.sg-admin .sg-toolbar>label{width:100%}.sg-admin .sg-card{padding:16px}.sg-pagination a,.sg-pagination span{padding:8px;min-width:32px;font-size:13px}.sg-viewer{padding:45px 12px 15px}.sg-viewer>img{height:57dvh}.sg-viewer-controls button{font-size:13px;padding:9px}}@media(prefers-reduced-motion:reduce){.sg-photo img{transition:none}}

/* Keep the native dialog centred even when the site theme resets margins. */
dialog.sg-lightbox {
    position: fixed;
    inset: 0;
    margin: auto;
    box-sizing: border-box;
    width: min(1060px, calc(100% - 24px));
    max-width: calc(100% - 24px);
    height: fit-content;
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    overflow: auto;
    overscroll-behavior: contain;
}
dialog.sg-lightbox .sg-viewer {
    box-sizing: border-box;
    padding: 48px 20px 18px;
    min-width: 0;
}
dialog.sg-lightbox .sg-viewer > img {
    width: 100%;
    max-width: 100%;
    height: min(65vh, max(60px, calc(100vh - 240px)));
    height: min(65dvh, max(60px, calc(100dvh - 240px)));
    object-fit: contain;
    margin: 0 auto;
}
dialog.sg-lightbox .sg-viewer > p {
    margin: 12px auto;
    line-height: 1.5;
    max-height: 4.5em;
    overflow: auto;
}
dialog.sg-lightbox .sg-viewer-controls {
    gap: 8px;
    flex-wrap: nowrap;
}
dialog.sg-lightbox .sg-viewer-controls button {
    min-height: 44px;
    flex-shrink: 0;
}
dialog.sg-lightbox .sg-close {
    width: 44px;
    height: 44px;
    top: 2px;
    right: 4px;
    line-height: 1;
    z-index: 1;
}
@media (max-width: 600px) {
    dialog.sg-lightbox .sg-viewer { padding: 48px 12px 14px; }
    dialog.sg-lightbox .sg-viewer-controls button { padding: 8px; font-size: 13px; }
    dialog.sg-lightbox [data-sg-position] { font-size: 13px; white-space: nowrap; }
}
