/* Sozo Bible College — Community Page
   Warm, welcoming palette. All styles are scoped to .community-page. */
.community-page{
  --community-ink:#2f3d38;
  --community-muted:#65736d;
  --community-paper:#fffdf8;
  --community-cream:#fff7e8;
  --community-line:#e7dcc9;
  --community-sage:#5f806e;
  --community-sage-soft:#e1eee5;
  --community-sky:#5d86a0;
  --community-sky-soft:#e1edf4;
  --community-gold:#b98437;
  --community-gold-soft:#f8ebc9;
  --community-rose:#b9695e;
  --community-rose-soft:#f5dfda;
  --community-lavender:#796a98;
  --community-lavender-soft:#e9e3f3;
  --community-sand:#8b7356;
  --community-sand-soft:#efe5d6;
  max-width:1180px;
  margin:0 auto;
  padding:0 18px 3rem;
  color:var(--community-ink);
}
.community-page *, .community-page *::before, .community-page *::after{box-sizing:border-box}
.community-page a{color:inherit}

/* Hero */
.community-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  margin:1rem 0 2rem;
  border:1px solid #ead8bd;
  border-radius:24px;
  background:linear-gradient(125deg,#f8dfbd 0%,#f7ecd8 38%,#dceadf 68%,#dce8f0 100%);
  box-shadow:0 18px 42px rgba(86,68,46,.13);
}
.community-hero__content{position:relative;z-index:2;max-width:820px;padding:clamp(2.3rem,6vw,5.1rem) clamp(1.4rem,6vw,5rem)}
.community-hero h1{font-size:clamp(2.2rem,5.8vw,4.4rem);line-height:1;letter-spacing:-.045em;margin:.45rem 0 1rem;color:#30453d}
.community-hero p{max-width:720px;margin:0;color:#52675f;font-size:clamp(1rem,2vw,1.15rem);line-height:1.72}
.community-kicker,.community-eyebrow{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:800;color:#5c7b69}
.community-eyebrow{color:#a36f30;margin-bottom:.35rem}
.community-hero__glow{position:absolute;border-radius:50%;filter:blur(2px);opacity:.52;z-index:1}
.community-hero__glow--one{width:310px;height:310px;right:-75px;top:-95px;background:radial-gradient(circle,rgba(224,151,121,.58),transparent 67%)}
.community-hero__glow--two{width:280px;height:280px;right:18%;bottom:-185px;background:radial-gradient(circle,rgba(113,164,139,.52),transparent 68%)}
.community-stats{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:10px;margin-top:2rem;max-width:720px}
.community-stats div{padding:.82rem .92rem;border:1px solid rgba(111,91,59,.14);border-radius:13px;background:rgba(255,253,248,.64);box-shadow:0 5px 14px rgba(99,77,48,.06)}
.community-stats strong{display:block;font-size:1.4rem;color:#344c43}
.community-stats span{display:block;margin-top:2px;color:#6d776f;font-size:.71rem;text-transform:uppercase;letter-spacing:.08em}

/* Section headings */
.community-section{margin:2.2rem 0}
.community-section__heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.05rem}
.community-section__heading h2,.future-graduates h2{margin:0;color:var(--community-ink);font-size:clamp(1.5rem,3vw,2.15rem);letter-spacing:-.025em}
.community-section__heading>p{max-width:510px;margin:0;color:var(--community-muted);line-height:1.62}

/* Shared palette accents */
.palette-sunrise{--card-accent:#c77c55;--card-soft:#f8e4d5;--card-photo:#f4d7c3}
.palette-sage{--card-accent:#60806f;--card-soft:#e1eee5;--card-photo:#d8e9dd}
.palette-sky{--card-accent:#5b8299;--card-soft:#e0edf3;--card-photo:#d7e7ef}
.palette-lavender{--card-accent:#786a94;--card-soft:#e9e3f1;--card-photo:#e2dbed}
.palette-rose{--card-accent:#ae665d;--card-soft:#f4dfdc;--card-photo:#efd3cf}
.palette-sand{--card-accent:#8a7256;--card-soft:#eee4d5;--card-photo:#e9dbc7}

/* Featured stories */
.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.featured-story{overflow:hidden;border:1px solid #e8ddcf;border-top:5px solid var(--card-accent,#60806f);border-radius:18px;background:var(--community-paper);box-shadow:0 12px 28px rgba(81,67,49,.09)}
.featured-story__visual{height:205px;background:linear-gradient(145deg,var(--card-photo,#d8e9dd),var(--card-soft,#e1eee5))}
.featured-story__visual img{width:100%;height:100%;display:block;object-fit:cover}
.featured-story__body{padding:1.05rem 1.12rem 1.2rem}
.featured-story h3{font-size:1.28rem;margin:.22rem 0 .2rem;color:var(--community-ink)}
.featured-story p{margin:.7rem 0 0;color:var(--community-muted);font-size:.9rem;line-height:1.58}
.featured-story blockquote,.person-details blockquote{margin:.85rem 0 0;padding:.65rem 0 .05rem .8rem;border-left:3px solid var(--card-accent,var(--community-sage));color:var(--community-muted);font-style:italic;line-height:1.52}
.person-meta,.person-card__topline{min-height:1em;color:#7a817d;font-size:.71rem;text-transform:uppercase;letter-spacing:.07em}
.person-headline{color:var(--card-accent,var(--community-sage));font-weight:750;font-size:.86rem;line-height:1.43}

/* Filters */
.community-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 1.05rem}
.community-filter{appearance:none;border:1px solid #dfd3c2;border-radius:999px;background:#fffaf0;color:#52645d;padding:7px 12px;font:inherit;font-size:.8rem;cursor:pointer;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}
.community-filter:hover{transform:translateY(-1px);border-color:#9bb3a6;box-shadow:0 5px 12px rgba(76,91,82,.08)}
.community-filter.is-active{background:#5f806e;border-color:#5f806e;color:#fff}
.community-filter span{opacity:.8;margin-left:4px}

/* People cards */
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.person-card{overflow:hidden;border:1px solid #e7dccd;border-top:5px solid var(--card-accent,#60806f);border-radius:18px;background:var(--community-paper);box-shadow:0 10px 24px rgba(82,67,49,.07);transition:transform .18s,border-color .18s,box-shadow .18s}
.person-card:hover{transform:translateY(-3px);border-color:var(--card-accent,#60806f);box-shadow:0 16px 34px rgba(82,67,49,.12)}
.person-card[hidden]{display:none!important}
.person-card__photo{position:relative;height:190px;background:linear-gradient(145deg,var(--card-photo,#d8e9dd),var(--card-soft,#e1eee5));overflow:hidden}
.person-card__photo::after{content:"";position:absolute;inset:auto 0 0;height:42px;background:linear-gradient(transparent,rgba(47,61,56,.08));pointer-events:none}
.person-card__photo img{width:100%;height:100%;display:block;object-fit:cover}
.person-card__body{padding:1rem 1.05rem 1.1rem}
.person-card h3{margin:.22rem 0 .18rem;font-size:1.2rem;color:var(--community-ink)}
.person-story{color:var(--community-muted);font-size:.86rem;line-height:1.56;margin:.65rem 0 .72rem}
.featured-marker{position:absolute;z-index:2;top:10px;right:10px;background:#fff7dd;color:#8a6428;border:1px solid #ecd29a;border-radius:999px;padding:4px 9px;font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.community-initials{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:2.7rem;font-weight:800;color:var(--card-accent,#60806f);letter-spacing:-.08em}
.community-initials--large{font-size:4rem}
.community-initials--small{width:48px;height:48px;border-radius:50%;font-size:1rem;background:#e5eee8;color:#547363}

/* Badges from data/users/{username}.json */
.person-badges{display:flex;gap:5px;flex-wrap:wrap;margin:.72rem 0 .45rem}
.person-badges--featured{margin:.65rem 0 .35rem}
.person-badges--compact{margin:.35rem 0 0}
.community-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid transparent;border-radius:999px;font-size:.69rem;font-weight:800;line-height:1.1;white-space:nowrap}
.community-badge span{font-size:.78rem}
.badge--sage{background:var(--community-sage-soft);border-color:#bdd4c6;color:#426554}
.badge--sky{background:var(--community-sky-soft);border-color:#bfd5e1;color:#426d86}
.badge--gold{background:var(--community-gold-soft);border-color:#ead28f;color:#8a6428}
.badge--rose{background:var(--community-rose-soft);border-color:#e6bcb5;color:#8c4f48}
.badge--lavender{background:var(--community-lavender-soft);border-color:#cec1df;color:#65547f}
.badge--sand{background:var(--community-sand-soft);border-color:#dac8ad;color:#715d45}

/* Role tags deliberately quieter than badges */
.person-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:.45rem}
.person-tags span{padding:3px 8px;border-radius:999px;background:var(--card-soft,#e1eee5);border:1px solid rgba(95,128,110,.14);color:#66736d;font-size:.66rem;font-weight:700}

/* Expanded profile */
.person-details{margin-top:.82rem;border-top:1px solid #eadfd2;padding-top:.62rem}
.person-details summary{color:var(--card-accent,var(--community-sage));cursor:pointer;font-weight:800;font-size:.8rem;list-style:none}
.person-details summary::-webkit-details-marker{display:none}
.person-details summary::after{content:' +';font-weight:400}
.person-details[open] summary::after{content:' −'}
.person-details>p{color:var(--community-muted);font-size:.84rem;line-height:1.58}
.person-details h4{font-size:.77rem;text-transform:uppercase;letter-spacing:.07em;margin:1rem 0 .4rem;color:var(--community-ink)}
.person-details ul{padding:0;margin:0;list-style:none}
.person-details li{padding:.52rem 0;border-bottom:1px solid #eadfd2;font-size:.82rem}
.person-details li:last-child{border-bottom:none}
.person-details li strong,.person-details li span,.person-details li small{display:block}
.person-details li span,.person-details li small{margin-top:2px;color:var(--community-muted)}
.community-empty,.community-no-results{padding:2rem;border:1px dashed #d9cbb7;border-radius:16px;text-align:center;background:#fffaf0;color:var(--community-muted)}
.community-empty h3{color:var(--community-ink)}

/* Alumni and graduates */
.alumni-section{padding:1.3rem;border:1px solid #d9cde7;border-radius:20px;background:linear-gradient(135deg,#f0eaf6,#f8f2e7 56%,#e8f1ec)}
.alumni-ribbon{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.alumni-person{display:flex;align-items:flex-start;gap:11px;padding:.78rem;border:1px solid #e2d8ca;border-radius:13px;background:rgba(255,253,248,.88);box-shadow:0 5px 14px rgba(79,66,50,.05)}
.alumni-person img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.alumni-person__text{min-width:0}
.alumni-person strong,.alumni-person span{display:block}
.alumni-person>div>span{margin-top:2px;color:var(--community-muted);font-size:.75rem}
.future-graduates{display:flex;align-items:center;gap:1.25rem;padding:1.42rem;border:1px solid #ead49b;border-radius:20px;background:linear-gradient(135deg,#fff3d8,#f5ead7 52%,#e6f0eb)}
.future-graduates__icon{display:flex;align-items:center;justify-content:center;width:74px;height:74px;flex:0 0 74px;border-radius:18px;background:#f5dfac;font-size:2rem}
.future-graduates p{margin:.55rem 0 0;color:var(--community-muted);line-height:1.58}
.graduate-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:.75rem}
.graduate-list span{padding:5px 9px;border-radius:999px;border:1px solid #ddcfbb;background:var(--community-paper);font-size:.76rem}

/* Gallery */
.community-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.community-gallery figure{position:relative;overflow:hidden;min-height:210px;margin:0;border-radius:16px;background:var(--community-paper);border:1px solid #e4d8c8;box-shadow:0 8px 20px rgba(79,66,50,.07)}
.community-gallery img{width:100%;height:100%;min-height:210px;display:block;object-fit:cover}
.community-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.5rem .8rem .7rem;background:linear-gradient(transparent,rgba(39,48,44,.88));color:#fff}
.community-gallery figcaption strong,.community-gallery figcaption span{display:block}
.community-gallery figcaption span{font-size:.75rem;color:rgba(255,255,255,.82);margin-top:2px}

@media(max-width:900px){
  .featured-grid,.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .community-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .community-stats{grid-template-columns:repeat(2,minmax(100px,1fr))}
}
@media(max-width:640px){
  .community-page{padding:0 10px 2rem}
  .community-hero{border-radius:17px}
  .community-hero__content{padding:2.35rem 1.2rem}
  .community-section__heading{display:block}
  .community-section__heading>p{margin-top:.65rem}
  .featured-grid,.people-grid,.alumni-ribbon,.community-gallery{grid-template-columns:1fr}
  .featured-story__visual,.person-card__photo{height:220px}
  .future-graduates{align-items:flex-start}
  .future-graduates__icon{width:58px;height:58px;flex-basis:58px}
  .community-stats div{padding:.65rem}
}
@media(prefers-reduced-motion:reduce){
  .person-card,.community-filter{transition:none}
  .person-card:hover,.community-filter:hover{transform:none}
}
