/* ---------- blog (loaded only on blog pages) ---------- */

/* intro (centered) */
.blog-head .wrap{text-align:center}
.blog-head .sub{color:var(--ink-soft);font-weight:600;font-size:1.08rem;max-width:640px;margin:14px auto 0}

/* category filter chips */
.filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:30px 0 38px}
.fchip{border:2px solid rgba(18,48,58,.14);background:#fff;border-radius:999px;padding:9px 20px;font-family:var(--font-head);font-weight:700;font-size:.92rem;cursor:pointer;color:var(--ink-soft);transition:all .2s}
.fchip:hover{border-color:var(--teal);color:var(--teal-deep)}
.fchip.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* activity cards (cover image + own download button) */
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .2s ease}
.post-card:hover{transform:translateY(-8px)}
.pc-ph{aspect-ratio:16/10;overflow:hidden}
.pc-ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post-card:hover .pc-ph img{transform:scale(1.06)}
.pc-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px;flex:1}
.pc-meta{display:flex;align-items:center;gap:12px;font-size:.85rem;font-weight:800;color:var(--ink-soft)}
.chip{padding:5px 14px;border-radius:999px;font-size:.78rem;font-weight:900;color:#fff;font-style:normal}
.chip-camp{background:var(--pink)}
.chip-collab{background:var(--teal)}
.chip-outings{background:var(--orange)}
.pc-body b{font-family:var(--font-head);font-size:1.22rem;line-height:1.3;flex:1}
.pc-body .btn{align-self:flex-start}
.btn-sm svg{width:18px;height:18px}
@media(max-width:980px){.posts-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.posts-grid{grid-template-columns:1fr}}

/* ---------- Summer Camp gallery (code popup + pictures overlay) ---------- */
.gal-modal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px}
.gal-modal[hidden]{display:none}
.gal-backdrop{position:absolute;inset:0;background:rgba(18,48,58,.5);backdrop-filter:blur(3px)}
.gal-modal .gal-gate{position:relative;z-index:1;max-width:480px;width:100%}
.gal-x{position:absolute;top:10px;inset-inline-end:12px;border:0;background:none;font-size:16px;font-weight:900;color:var(--ink-soft);cursor:pointer}
.gal-gate{max-width:520px;margin:0 auto;background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:30px 26px;text-align:center}
.gal-lock{width:64px;height:64px;border-radius:50%;background:var(--teal-soft);color:var(--teal-deep);display:grid;place-items:center;margin:0 auto 16px}
.gal-lock svg{width:28px;height:28px}
.gal-gate h3{font-family:var(--font-head);font-size:1.25rem;margin:0 0 6px}
.gal-gate p{color:var(--ink-soft);font-weight:600;margin:0 0 18px}
.gal-row{display:flex;gap:10px}
.gal-row input{flex:1;min-width:0;border:2px solid rgba(18,48,58,.12);border-radius:14px;background:#fff;padding:13px 16px;font-family:var(--font-body);font-weight:700;font-size:1rem;color:var(--ink);outline:none;text-transform:uppercase;letter-spacing:2px;text-align:center}
.gal-row input:focus{border-color:var(--teal)}
.gal-err{color:var(--pink-deep);font-weight:800;margin:12px 0 0}
.gal-overlay{position:fixed;inset:0;z-index:95;background:var(--cream);overflow-y:auto;padding:24px 20px 60px}
.gal-overlay[hidden]{display:none}
.gal-top{max-width:1240px;margin:0 auto 16px;display:flex;align-items:center;gap:10px}
.gal-top h3{font-family:var(--font-head);font-size:1.25rem;margin:0;flex:1}
.gal-back{width:38px;height:38px;border:0;border-radius:12px;background:#fff;box-shadow:0 6px 16px rgba(18,48,58,.12);font-size:16px;font-weight:900;color:var(--teal-deep);cursor:pointer}
.gal-open{display:block;margin:18px auto 0}
.gal-grid{max-width:840px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gal-ph{margin:0;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 6px 18px rgba(18,48,58,.08)}
.gal-ph img{width:100%;height:150px;object-fit:cover;display:block}
.gal-ph figcaption{padding:9px 12px;font-weight:800;font-size:.78rem;color:var(--ink)}
.gal-note{max-width:840px;margin:14px auto 0;color:var(--ink-soft);font-weight:600;font-size:.85rem;text-align:center}
@media(max-width:640px){.gal-grid{grid-template-columns:1fr 1fr}}

.gal-albs{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:900px){.gal-albs{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.gal-albs{grid-template-columns:1fr}}
.gal-alb{background:#fff;border:0;border-radius:16px;box-shadow:0 6px 18px rgba(18,48,58,.08);padding:12px 14px 14px;text-align:start;cursor:pointer;font-family:var(--font-body)}
.gal-alb img{width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;border-radius:14px;display:block;margin-bottom:12px;background:var(--cream)}
a.gal-alb{display:block;text-decoration:none;color:inherit}
.gal-alb.off{opacity:.7;cursor:default}
.gal-alb b{display:block;font-size:.95rem;color:var(--ink);margin-bottom:4px}
.gal-alb small{color:var(--ink-soft);font-weight:600;font-size:.75rem}
