/* ==========================================================================
   Kingdom Global Fellowship — public forms, custom pages, resources,
   initiatives, and the site-settings announcement bar (package N;
   polished 2026-09-30 on the Horizon tokens — no gold).

   Loaded on the PHP pages this package renders, and pulled in by
   assets/js/site-settings.js on EVERY page for the announcement bar — so
   every rule here is scoped to a kgf-/cms- class.
   Shared components (.pg-*) live in 08-pages.css.
   ========================================================================== */

.kgf-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Draft / preview note ---------- */
.kgf-form-note{display:flex;gap:14px;align-items:flex-start;margin:0 0 26px;padding:16px 20px;border-radius:var(--kgf-radius);background:var(--kgf-blue-50);border:1px solid var(--kgf-blue-100);color:var(--kgf-ink);font-size:.94rem}
.kgf-form-note p{margin:0;padding-top:6px}
.kgf-form-note a{color:var(--kgf-blue-700);font-weight:700;text-decoration:underline}

/* ---------- Built forms ---------- */
.kgf-form-wrap{max-width:860px}
.kgf-help{display:block;color:var(--kgf-slate-500);font-size:.84rem;line-height:1.5}
.kgf-help a{color:var(--kgf-blue-700);text-decoration:underline}
.kgf-built-form .form-section > h3.kgf-form-heading{margin-bottom:22px;font-size:1.35rem}
.kgf-built-form .form-section > h3.kgf-form-heading + p.hint{margin-top:-16px}
.kgf-form-para{grid-column:1/-1;margin:0;color:var(--kgf-slate-700);line-height:1.7}
.kgf-fieldset{border:0;padding:0;margin:0;min-width:0}
.kgf-fieldset legend{font-size:.86rem;font-weight:700;color:var(--kgf-navy-900);margin-bottom:9px;padding:0}
.kgf-fieldset legend .req,.field .consent .req{color:var(--kgf-danger);margin-left:3px}
.kgf-fieldset legend .opt{color:var(--kgf-slate-500);font-weight:500;margin-left:5px}
.kgf-fieldset .kgf-help{margin:-4px 0 10px}
.kgf-built-form input[type="file"]{padding:12px;background:var(--kgf-mist);border-style:dashed}
.kgf-built-form .field .consent{margin-top:4px}
.kgf-built-form .form-actions .btn svg{margin-left:4px}
.kgf-built-form .form-actions .kgf-help{flex:1 1 240px}
.kgf-form-shell{min-width:0}
/* The honeypot div comes first, so the first real section drops its rule here. */
.kgf-built-form > .field[aria-hidden] + .form-section{padding-top:0;margin-top:0;border-top:0}
/* style.css sizes every .field input like a text box; ticks stay ticks. */
.kgf-built-form .field :is(input[type="checkbox"],input[type="radio"]){width:18px;height:18px;min-height:0;padding:0;box-shadow:none}

/* The aside next to a built form */
.kgf-form-aside .pg-facts dd{font-weight:500;font-size:.95rem}
.kgf-form-aside .pg-facts dd a{color:var(--kgf-blue-700);text-decoration:underline}
.kgf-form-help p{margin:0 0 16px;color:#c6d4ea;font-size:.95rem}
.pg-panel.navy .btn.gold{background:#fff;border-color:#fff;color:var(--kgf-navy-900)}
.pg-panel.navy .btn.gold:hover{background:var(--kgf-blue-50);border-color:var(--kgf-blue-50)}

/* Closed form */
.kgf-form-closed{max-width:760px;margin:0 auto}

/* Sent */
.kgf-form-sent .lead{font-size:1.1rem}
.kgf-form-sent .actions{margin-top:26px}
.kgf-form-sent .kgf-help{margin-bottom:0}

.kgf-missing{max-width:760px;margin:0 auto}
.kgf-missing-search{grid-template-columns:1fr auto;max-width:520px;margin:22px auto 0}
.kgf-missing-links{justify-content:center;gap:10px 28px;margin-top:22px}
.kgf-missing-links a{min-height:44px;text-decoration:none!important}

@media (max-width:620px){
  .kgf-built-form .form-actions .btn{width:100%;justify-content:center}
  .kgf-form-note{padding:14px 16px}
}

/* ---------- Custom page and initiative bodies ----------
   .cms-body pairs with .pg-prose (08-pages.css) for typography. */
.cms-body{max-width:var(--kgf-width-text)}
.cms-body > :first-child{margin-top:0}
.cms-body a:not(.btn){color:var(--kgf-blue-700);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cms-note{width:100%;max-width:var(--kgf-width-text)}
.cms-figure{margin:32px 0}
.cms-figure img{display:block;width:100%;height:auto;margin:0;border-radius:var(--kgf-radius-lg)}
.cms-figure figcaption{margin-top:10px;color:var(--kgf-slate-500);font-size:.86rem}
.cms-layout{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center}
.cms-layout .cms-body{width:100%}
.cms-updated{display:flex;align-items:center;gap:8px;max-width:var(--kgf-width-text);width:100%;margin:clamp(34px,5vw,52px) auto 0;padding-top:22px;border-top:1px solid var(--kgf-line);color:var(--kgf-slate-500);font-size:.88rem}

/* ---------- Initiatives ---------- */
.kgf-initiative-card{display:flex;flex-direction:column;height:100%;overflow:hidden;color:inherit;text-decoration:none!important;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.kgf-initiative-card:hover,.kgf-initiative-card:focus-visible{transform:translateY(-3px);box-shadow:var(--kgf-shadow);border-color:var(--kgf-blue-200)}
.kgf-initiative-card:focus-visible{outline:none;box-shadow:var(--kgf-ring),var(--kgf-shadow)}
.kgf-initiative-card figure,.kgf-initiative-card .pg-ph{margin:0;aspect-ratio:16/10;border-radius:0}
.kgf-initiative-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.kgf-initiative-card:hover img{transform:scale(1.03)}
.kgf-initiative-card .card-body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.kgf-initiative-card .card-body h3{margin:0;font-size:1.3rem}
.kgf-initiative-card .card-body p{margin:0;color:var(--kgf-slate-500)}
.kgf-initiative-card .pill{align-self:flex-start}
.kgf-more{margin-top:auto;padding-top:8px}
.kgf-crumb{color:inherit;text-decoration:none}
.kgf-initiative-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:clamp(28px,4vw,56px);align-items:start}
.kgf-initiative-layout.no-image{grid-template-columns:minmax(0,1fr)}
.kgf-initiative-layout .cms-figure,.kgf-initiative-ph{margin:0;position:sticky;top:calc(var(--topbar-h) + var(--nav-h) + 24px)}
.kgf-initiative-ph{aspect-ratio:4/3;border-radius:var(--kgf-radius-lg);box-shadow:var(--kgf-shadow)}
.kgf-involved{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;margin-top:clamp(30px,4vw,44px);padding:clamp(22px,3vw,32px);border-radius:var(--kgf-radius-lg);background:linear-gradient(160deg,var(--kgf-navy-900),var(--kgf-navy-950));color:#d3def0;position:relative;overflow:hidden}
.kgf-involved::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--kgf-horizon)}
.kgf-involved > div{display:flex;gap:16px;align-items:center;min-width:0}
.kgf-involved .pg-ico{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:var(--kgf-blue-200)}
.kgf-involved .pg-kicker{color:var(--kgf-blue-200);margin-bottom:4px}
.kgf-involved h3{margin:0;color:#fff;font-size:1.3rem}
.kgf-involved .btn{background:#fff;border-color:#fff;color:var(--kgf-navy-900)}
.kgf-involved .btn:hover{background:var(--kgf-blue-50);border-color:var(--kgf-blue-50)}
.kgf-back{margin-top:40px}
.kgf-back a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--kgf-blue-700);font-weight:700;text-decoration:none}
.kgf-back a:hover{color:var(--kgf-blue-600)}
@media (max-width:960px){
  .kgf-initiative-layout{grid-template-columns:1fr}
  .kgf-initiative-layout .cms-figure{position:static;order:-1}
  .kgf-initiative-ph{display:none}
}
@media (max-width:620px){.kgf-involved .btn{width:100%;justify-content:center}}

/* ---------- Resources ---------- */
.kgf-filter .pg-chips{margin-bottom:clamp(26px,3vw,36px)}
.kgf-group{margin-top:clamp(34px,4vw,48px)}
.kgf-group:first-of-type{margin-top:0}
.kgf-group-title{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:1.45rem}
.kgf-group-title .n{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 8px;border-radius:var(--kgf-radius-pill);background:var(--kgf-blue-50);color:var(--kgf-blue-700);font-family:var(--kgf-font-ui);font-size:.76rem;font-weight:700}
.kgf-resource-list{display:grid;gap:clamp(12px,1.6vw,16px)}
.kgf-resource{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:8px 22px;align-items:center;padding:clamp(18px,2vw,24px) clamp(18px,2.2vw,28px);background:#fff;border:1px solid var(--kgf-line);border-radius:var(--kgf-radius-lg);box-shadow:var(--kgf-shadow-sm);transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease}
.kgf-resource:hover{box-shadow:var(--kgf-shadow);transform:translateY(-2px);border-color:var(--kgf-blue-200)}
.kgf-resource-type{flex:none;display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--kgf-blue-50);border:1px solid var(--kgf-blue-100);color:var(--kgf-blue-600)}
.kgf-resource-type svg{width:24px;height:24px}
.kgf-resource.is-locked .kgf-resource-type{background:var(--kgf-mist);border-color:var(--kgf-line);color:var(--kgf-slate-500)}
.kgf-resource-badge{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;padding:4px 10px;border-radius:var(--kgf-radius-pill);font-size:.74rem;font-weight:700}
.kgf-resource-badge.members{background:var(--kgf-navy-900);color:#fff}
.kgf-resource-main{min-width:0}
.kgf-resource-main h3{margin:0 0 4px;font-size:1.2rem;line-height:1.3}
.kgf-resource-main p{margin:0;color:var(--kgf-slate-500);font-size:.95rem;line-height:1.6;max-width:72ch}
.kgf-resource-main p a{color:var(--kgf-blue-700);text-decoration:underline}
.kgf-resource-foot{display:flex;align-items:center;gap:18px;padding-left:22px;border-left:1px solid var(--kgf-line);align-self:stretch}
.kgf-resource-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0;padding:0;list-style:none;color:var(--kgf-slate-500);font-size:.84rem;font-weight:600;white-space:nowrap}
.kgf-resource-meta li + li::before{content:"·";margin-right:10px;color:var(--kgf-slate-300)}
.kgf-resource-action .btn{gap:8px;white-space:nowrap}
@media (max-width:760px){
  .kgf-resource{grid-template-columns:44px minmax(0,1fr);gap:14px 16px;align-items:start}
  .kgf-resource-type{width:44px;height:44px;border-radius:12px}
  .kgf-resource-foot{grid-column:1/-1;justify-content:space-between;flex-wrap:wrap;padding:14px 0 0;border-left:0;border-top:1px solid var(--kgf-line)}
}
@media (max-width:480px){
  .kgf-resource-action,.kgf-resource-action .btn{width:100%;justify-content:center}
}
.kgf-members-tag{color:var(--kgf-blue-700);font-weight:700}

/* ---------- Archbishop page: invitation section ---------- */
.kgf-invite .callout{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 32px}
.kgf-invite .callout h3{margin:8px 0 6px}

/* ---------- Site settings (assets/js/site-settings.js) ---------- */
[data-site].is-set{color:inherit;font-style:normal}
[data-site] a{color:var(--kgf-blue-700);font-weight:700}
.site-social{display:flex;flex-wrap:wrap;gap:10px 14px}
.site-social a{color:inherit;text-decoration:none;font-weight:700}
.site-social a:hover{text-decoration:underline}

/* The announcement bar: fixed under the menu, so nothing on the page — the
   home hero included — has to move to make room for it. Dismissible. */
.site-announce{position:fixed;left:0;right:0;top:calc(var(--topbar-h) + var(--nav-h));z-index:49;background:var(--kgf-blue-600);color:#fff;font-size:.88rem;font-weight:600;box-shadow:0 6px 18px rgba(8,12,22,.12)}
.site-announce .container{display:flex;align-items:center;justify-content:center;gap:14px;min-height:40px;padding:6px 36px 6px 0;position:relative;text-align:center}
.site-announce a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.site-announce button{position:absolute;right:0;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:1.2rem;line-height:1;cursor:pointer}
.site-announce button:hover,.site-announce button:focus-visible{background:rgba(255,255,255,.16)}
