/* PartyGram page: "civic" theme, mauve and navy; an organisation tree around one core */
.page-civic{--mauve:#8D679D;--mauve-deep:#6E4E7C;--mauve-soft:#F5EEF8;--lilac:#FAF6FC;--pline:#E8DDF0}
.page-civic .tag{color:var(--mauve-deep)}
.page-civic h2,.page-civic h3{color:#241A2B}
.page-civic a:not(.btn){color:var(--mauve-deep)}
.mv{color:var(--mauve);background:linear-gradient(transparent 80%,rgba(214,162,74,.35) 80%,rgba(214,162,74,.35) 94%,transparent 94%) no-repeat 0 0/0% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:pg-under 1.4s .5s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes pg-under{to{background-size:100% 100%}}
.pg-sec{padding:88px 0}
.lilac{background:linear-gradient(180deg,var(--lilac),#F6EFFA)}
.pg-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.btn-mauve{background:var(--mauve);border-color:var(--mauve);color:#fff}
.btn-mauve:hover{background:var(--mauve-deep);border-color:var(--mauve-deep);color:#fff}
.btn-ghost-mauve{background:transparent;border:2px solid var(--mauve);color:var(--mauve-deep)!important}
.btn-ghost-mauve:hover{background:var(--mauve-soft)}
.chip-badge{display:inline-block;padding:7px 13px;border-radius:999px;background:#fff;border:1px solid var(--pline);color:#5B4F63;font-weight:600;font-size:.85rem}
.note{padding:14px 16px;border-left:4px solid var(--gold);background:var(--mauve-soft);border-radius:10px;font-size:.9rem}
.pg-banner{margin:40px auto 0;max-width:820px;text-align:center;font:600 1.15rem/1.4 var(--head);letter-spacing:.04em;text-transform:uppercase;color:var(--mauve-deep)!important}
.center-note{text-align:center;max-width:720px;margin:28px auto 0;font-size:.95rem}

/* HERO */
.pg-hero{position:relative;overflow:hidden;padding:52px 0 92px;background:radial-gradient(circle at 88% 12%,rgba(141,103,157,.20),transparent 32%),radial-gradient(circle at 4% 96%,rgba(214,162,74,.12),transparent 26%),linear-gradient(135deg,#fff 0%,var(--lilac) 60%,#F3EAF8 100%)}
.pg-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.orgtree{margin:0;padding:26px;border-radius:26px;background:#fff;border:1px solid var(--pline);box-shadow:0 24px 60px rgba(70,40,90,.12);display:grid;gap:12px;text-align:center}
.ot-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ot-node{padding:10px 8px;border-radius:12px;background:var(--mauve-soft);color:#4A3A55;font-weight:600;font-size:.88rem;border:1px solid var(--pline)}
.ot-node.top{background:var(--mauve);color:#fff;border-color:var(--mauve)}
.ot-core{padding:16px;border-radius:16px;background:linear-gradient(135deg,#102255,#3B2A4F);color:#fff;animation:pg-pulse 3.2s ease-in-out infinite}
.ot-core strong{display:block;font:600 1.2rem var(--head);letter-spacing:.03em}
.ot-core span{font-size:.8rem;color:#D9CFE6}
@keyframes pg-pulse{50%{box-shadow:0 0 0 10px rgba(141,103,157,.12)}}
.ot-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}
.ot-stats span{font-size:.82rem;color:#5B4F63;background:var(--lilac);border:1px solid var(--pline);border-radius:999px;padding:5px 11px}
.ot-stats b{color:var(--mauve-deep)}
.orgtree figcaption{font-size:.78rem;color:#7A7084}

/* cards */
.pg-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pg-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pg-card{padding:24px;border-radius:20px;background:#fff;border:1px solid var(--pline);border-top:4px solid var(--mauve);transition:transform .3s,box-shadow .3s}
.pg-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(70,40,90,.10)}
.pg-card h3{margin-top:0}
.pg-card p{margin:0;font-size:.95rem}

/* Phase One */
.know{list-style:none;padding:0;margin:18px 0;display:grid;gap:6px}
.know li{font:600 1.05rem var(--head);letter-spacing:.05em;text-transform:uppercase;color:var(--mauve-deep);padding-left:26px;position:relative}
.know li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:12px;border-radius:50%;background:var(--gold)}
.dash{margin:0;background:#fff;border-radius:22px;border:1px solid var(--pline);box-shadow:0 22px 54px rgba(70,40,90,.12);overflow:hidden}
.dash-head{padding:14px 18px;background:#102255;color:#fff;font:600 1.05rem var(--head);display:flex;justify-content:space-between;align-items:center}
.dash-head span{font:500 .75rem var(--body);color:#C7CFEA}
.dash-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px}
.dash-kpis div{background:var(--lilac);border-radius:12px;padding:10px 6px;text-align:center;font-size:.78rem;color:#6B6075}
.dash-kpis b{display:block;font:600 1.5rem var(--head);color:var(--mauve-deep)}
.dash table{width:100%;border-collapse:collapse;font-size:.85rem}
.dash th,.dash td{padding:10px 16px;text-align:left;border-top:1px solid #F0E9F4}
.dash th{color:#7A7084;font-weight:600;font-size:.78rem}
.dash i{font-style:normal;font-weight:700;font-size:.78rem;padding:3px 9px;border-radius:999px}
.dash .ok{background:#E6F6EC;color:#1E7A43}.dash .warn{background:#FFF1D6;color:#8A5A00}

/* capabilities */
.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.cap{padding:20px;border-radius:18px;background:var(--lilac);border:1px solid var(--pline)}
.cap h3{margin:0 0 .3em;font-size:1.1rem}
.cap p{margin:0;font-size:.92rem}

/* steps */
.pg-steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pg-steps li{counter-increment:s;position:relative;padding:22px 22px 22px 70px;background:#fff;border-radius:18px;border:1px solid var(--pline);color:var(--slate);font-size:.94rem}
.pg-steps li::before{content:counter(s);position:absolute;left:20px;top:20px;width:36px;height:36px;border-radius:50%;background:var(--mauve);color:#fff;display:grid;place-items:center;font:600 1.1rem var(--head)}
.pg-steps b{display:block;color:var(--ink);margin-bottom:2px}

/* chips */
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{padding:9px 15px;border-radius:999px;background:#fff;border:1px solid var(--pline);color:#4A3A55;font-weight:600;font-size:.9rem}
.pg-split .chips li:nth-child(odd){background:var(--mauve-soft)}

/* modules */
.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mod{padding:24px;border-radius:20px;background:#fff;border:1px dashed #CDB9D9}
.mod span{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8A7C94}
.mod h3{margin:.4em 0 .25em}
.mod p{margin:0;font-size:.93rem}
.mod.first{border:2px solid var(--mauve);background:linear-gradient(135deg,#fff,var(--mauve-soft))}
.mod.first span{color:var(--mauve-deep)}

/* roles */
.roles{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.role{padding:28px;border-radius:22px;background:#fff;border:1px solid var(--pline)}
.role h3{margin-top:0}
.role ul{margin:0;padding-left:20px;color:var(--slate)}
.role li{margin:.3em 0}
.role.op{background:linear-gradient(135deg,#102255,#3B2A4F);border-color:transparent}
.role.op h3{color:#fff}.role.op ul{color:#D9CFE6}
.who{margin-top:40px;text-align:center}
.who .chips{justify-content:center}

/* boundaries */
.bounds{margin-top:40px;display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:center;padding:32px;border-radius:24px;background:var(--mauve-soft);border:1px solid var(--pline)}
.bounds h3{font-size:1.4rem;margin:0 0 .3em}
.nolist{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.nolist li{padding:7px 13px;border-radius:999px;background:#fff;border:1px solid #E6D6DC;color:#7A3A4A;font-size:.86rem;font-weight:600;text-decoration:line-through;text-decoration-color:rgba(122,58,74,.45)}

/* where it stands */
.stand{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.stand .col{padding:26px;border-radius:20px;background:#fff;border:1px solid var(--pline)}
.stand .col.now{border-top:4px solid var(--gold)}
.stand h3{margin-top:0}
.stand ul{margin:0;padding-left:20px;color:var(--slate);font-size:.94rem}
.stand li{margin:.3em 0}

.pg-cta{padding-top:20px}
.page-civic .cta-panel{background:linear-gradient(135deg,#6E4E7C,#102255)}

@media(max-width:900px){
  .pg-hero-grid,.pg-split,.roles,.bounds{grid-template-columns:1fr;gap:32px}
  .pg-grid3,.pg-grid4,.modules,.pg-steps,.stand{grid-template-columns:1fr 1fr}
  .pg-sec{padding:64px 0}
}
@media(max-width:600px){
  .pg-grid3,.pg-grid4,.modules,.pg-steps,.stand{grid-template-columns:1fr}
  .dash-kpis{grid-template-columns:repeat(2,1fr)}
  .dash th,.dash td{padding:9px 10px}
  .bounds{padding:24px}
}
@media(prefers-reduced-motion:reduce){.mv{animation:none;background-size:100% 100%}.ot-core{animation:none}}
