/* Community directory, calendar, submit form, and homepage events strip */

.community-subnav{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}
.community-subnav a{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid var(--line2);border-radius:999px;color:var(--muted);text-decoration:none;font:600 .75rem/1 var(--tv35-font-body);letter-spacing:.1em;text-transform:uppercase}
.community-subnav a:hover,.community-subnav a:focus-visible{color:#fff;border-color:rgba(124,242,185,.45);background:rgba(0,224,138,.1);outline:none}
.community-subnav a[aria-current="page"]{color:#03130C;background:var(--tv35-mint);border-color:var(--tv35-mint)}

.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.hub-card{display:flex;flex-direction:column;gap:10px;padding:24px 22px;background:var(--surface);border:1px solid var(--line2);border-radius:22px;text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .2s,border-color .2s,box-shadow .2s}
.hub-card:hover,.hub-card:focus-visible{transform:translateY(-4px);border-color:rgba(124,242,185,.35);box-shadow:var(--glow);outline:none}
.hub-card .kicker{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.hub-card h2{margin:0;font:700 1.25rem/1.25 var(--tv35-font-body);text-transform:none;letter-spacing:0;font-style:normal;color:#fff}
.hub-card p{margin:0;color:var(--muted);flex:1}
.hub-card .go{margin-top:8px;color:var(--accent);font-weight:600}

.community-filters{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:end;margin:0 0 22px}
.community-filters .field{flex:1 1 180px;min-width:160px}
.community-filters .field.search{flex:2 1 260px}
.community-filters .count{margin:0 0 6px;color:var(--dim);font-size:.84rem}

.church-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.church-card{background:var(--surface);border:1px solid var(--line2);border-radius:18px;padding:18px 18px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.church-card h3{margin:0;font:700 1.08rem/1.3 var(--tv35-font-body);text-transform:none;letter-spacing:0;font-style:normal;color:#fff}
.church-card .denom{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.church-card .addr{margin:0;color:var(--muted);font-size:.92rem}
.church-card .addr a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.church-card .addr a:hover,.church-card .addr a:focus-visible{color:var(--tv35-ice)}
.church-card .links{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.church-card .links a{display:inline-flex;padding:6px 10px;border:1px solid var(--line2);border-radius:999px;color:#fff;text-decoration:none;font-size:.78rem;font-weight:600}
.church-card .links a:hover,.church-card .links a:focus-visible{border-color:rgba(124,242,185,.45);background:rgba(0,224,138,.1);outline:none}
.church-note{margin:28px 0 0;color:var(--muted);font-size:.92rem}

.cal-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin:0 0 18px}
.cal-month-nav{display:flex;align-items:center;gap:8px}
.cal-month-nav h2{margin:0;min-width:12ch;text-align:center;font-size:clamp(1.4rem,3vw,2rem)}
.cal-month-nav button{appearance:none;background:rgba(255,255,255,.03);border:1px solid var(--line2);color:#fff;border-radius:12px;width:42px;height:42px;cursor:pointer;font:600 1.1rem/1 var(--tv35-font-body)}
.cal-month-nav button:hover,.cal-month-nav button:focus-visible{border-color:rgba(124,242,185,.45);background:rgba(0,224,138,.1);outline:none}
.cal-views{display:flex;gap:8px}
.cal-subscribe{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-dow{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:700;text-align:center;padding:8px 0}
.cal-day{min-height:112px;background:rgba(255,255,255,.025);border:1px solid var(--line2);border-radius:12px;padding:8px 6px 6px;display:flex;flex-direction:column;gap:4px}
.cal-day.is-outside{opacity:.42}
.cal-day.is-today{border-color:rgba(124,242,185,.55);box-shadow:0 0 0 1px rgba(124,242,185,.25)}
.cal-day .num{font-size:.78rem;font-weight:700;color:#CFE3D7;padding:0 4px}
.cal-day.is-today .num{color:var(--tv35-mint)}
.cal-pill{display:block;width:100%;text-align:left;appearance:none;border:0;border-radius:8px;padding:4px 6px;cursor:pointer;font:600 .72rem/1.25 var(--tv35-font-body);color:#fff;background:rgba(255,255,255,.06);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-pill:hover,.cal-pill:focus-visible{outline:none;filter:brightness(1.12)}
.cal-pill.cat-church{background:rgba(0,224,138,.16)}
.cal-pill.cat-civic{background:rgba(255,191,60,.16)}
.cal-pill.cat-sports{background:rgba(216,23,58,.2)}
.cal-pill.cat-community{background:rgba(124,200,242,.16)}
.cal-pill.cat-schools{background:rgba(150,140,255,.18)}
.cal-more{appearance:none;background:transparent;border:0;color:var(--accent);font:600 .72rem/1.2 var(--tv35-font-body);cursor:pointer;text-align:left;padding:2px 4px}
.cal-more:hover,.cal-more:focus-visible{text-decoration:underline;outline:none}

.cal-list{list-style:none;margin:0;padding:0}
.cal-list li{border-top:1px solid var(--line2)}
.cal-list li:last-child{border-bottom:1px solid var(--line2)}
.cal-list button.cal-item,.cal-list a.cal-item{display:grid;grid-template-columns:7.2rem minmax(0,1fr);gap:8px 16px;width:100%;text-align:left;appearance:none;border:0;background:transparent;color:inherit;padding:16px 8px;cursor:pointer;border-radius:0;font:inherit}
.cal-list button.cal-item:hover,.cal-list button.cal-item:focus-visible,
.cal-list a.cal-item:hover,.cal-list a.cal-item:focus-visible{background:rgba(255,255,255,.03);outline:none}
.cal-list .when{font-size:.8rem;color:var(--dim);font-weight:600}
.cal-list h3{margin:0 0 6px;font:700 1.06rem/1.35 var(--tv35-font-body);text-transform:none;letter-spacing:0;font-style:normal;color:#fff}
.cal-list .meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--dim);align-items:center}
.cal-list .src{color:var(--accent);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.68rem}

.cal-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:8px 0 18px;padding:0;list-style:none}
.cal-legend li{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;color:var(--muted);text-transform:capitalize}
.cal-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.cal-legend .cat-church{background:#00E08A}
.cal-legend .cat-civic{background:#FFBF3C}
.cal-legend .cat-sports{background:#E23B57}
.cal-legend .cat-community{background:#7CC8F2}
.cal-legend .cat-schools{background:#9B8CFF}

.link-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:8px}
.link-card{display:flex;flex-direction:column;gap:6px;padding:16px 16px 14px;border:1px solid var(--line2);border-radius:16px;background:rgba(255,255,255,.03);text-decoration:none;color:inherit}
.link-card:hover,.link-card:focus-visible{border-color:rgba(124,242,185,.35);outline:none}
.link-card .kicker{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.link-card h3{margin:0;font:700 1rem/1.3 var(--tv35-font-body);text-transform:none;letter-spacing:0;font-style:normal;color:#fff}
.link-card p{margin:0;color:var(--muted);font-size:.9rem}

.event-panel{margin-top:18px}
.event-panel .panel{padding:20px 22px}
.event-panel h3{margin:0 0 8px;font:700 1.2rem/1.3 var(--tv35-font-body);text-transform:none;letter-spacing:0;font-style:normal}
.event-panel .meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:.92rem;margin:0 0 8px}
.event-panel .src{color:var(--accent);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.68rem}

.events-strip{list-style:none;margin:0;padding:0}
.events-strip li{border-top:1px solid var(--line2)}
.events-strip li:last-child{border-bottom:1px solid var(--line2)}
.events-strip a{display:grid;grid-template-columns:7.2rem minmax(0,1fr);gap:8px 16px;padding:16px 4px;text-decoration:none;color:inherit}
.events-strip a:hover,.events-strip a:focus-visible{background:rgba(255,255,255,.03);outline:none}
.events-strip a:hover h3,.events-strip a:focus-visible h3{color:var(--tv35-ice)}
.events-strip .when{font-size:.8rem;color:var(--dim);font-weight:600}
.events-strip h3{margin:0 0 6px;font:700 1.06rem/1.35 var(--tv35-font-body);text-transform:none;letter-spacing:0;font-style:normal;color:#fff}
.events-strip .meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--dim)}
.events-strip .src{color:var(--accent);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.68rem}
.events-status{color:var(--muted);padding:28px 8px;margin:0;border-top:1px solid var(--line2)}
.events-status.is-error{color:var(--tv35-gold)}

.empty-state{color:var(--muted);padding:28px 8px;margin:0;border-top:1px solid var(--line2)}

@media (max-width:800px){
  .hub-grid{grid-template-columns:1fr}
  .cal-day{min-height:86px}
  .cal-list button.cal-item,.cal-list a.cal-item,.events-strip a{grid-template-columns:5.6rem minmax(0,1fr);gap:6px 12px;padding:14px 0}
  .community-filters .field{flex:1 1 100%}
}
@media (max-width:520px){
  .cal-grid{gap:2px}
  .cal-day{min-height:72px;padding:5px 3px 4px;border-radius:8px}
  .cal-pill{font-size:.64rem;padding:3px 4px}
}

.community-filters .count{flex:1 1 100%;margin:4px 0 0}
@media (max-width:800px){
  .cal-toolbar{flex-direction:column;align-items:stretch;gap:12px}
  .cal-month-nav{width:100%;justify-content:space-between}
  .cal-month-nav h2{min-width:0;flex:1}
  .cal-month-nav [data-cal-today]{flex:0 0 auto}
  .cal-subscribe{width:100%;justify-content:flex-start;flex-wrap:wrap}
}
