/* ============================================================
   APCC Cohort Library — public stylesheet (v2.3 UX upgrade)
   Scoped under .apcc-cl. Current APCC palette only (no teal/orange).
   Editorial type system: serif headings, mono eyebrows, sans body.
   ============================================================ */
.apcc-cl{
  /* Brand palette */
  --green:var(--apcc-green-900); --green-deep:var(--apcc-green-900); --mint:var(--apcc-mint-100);
  --hero-a:var(--apcc-green-900); --hero-b:var(--apcc-green-600); --active:var(--apcc-green-600); --gold:var(--apcc-gold);
  --footer:var(--apcc-green-900); --footer-2:var(--apcc-green-700); --footer-div:var(--apcc-green-600); --social:var(--apcc-text);
  --blue:var(--apcc-cyan); --muted:var(--apcc-muted); --charcoal:var(--apcc-text); --white:var(--apcc-white);
  /* Approved APCC palette (same as the cohorts.apccafrica.org mockup) */
  --teal:var(--apcc-green-600); --orange:var(--apcc-warn); --teal-tint:var(--apcc-mint-100); --orange-tint:var(--apcc-warn-bg);
  /* Derived */
  --ink:var(--apcc-text); --ink-soft:var(--apcc-text); --line:var(--apcc-mint-200); --line-soft:var(--apcc-mint-100);
  --bg:var(--apcc-mint-50); --mint-2:var(--apcc-mint-100); --gold-tint:var(--apcc-gold-soft); --green-tint:var(--apcc-mint-100);
  --shadow-sm:0 1px 2px rgba(3,76,67,.05);
  --shadow:0 6px 22px -10px rgba(3,76,67,.26);
  --shadow-lg:0 22px 50px -24px rgba(3,76,67,.42);
  --r-sm:8px; --r:14px; --r-lg:22px;
  /* Use the active APCC theme font (Noto Sans) across headings, body and
     labels; keep the label letter-spacing/uppercase styling, drop the
     serif/mono families. */
  --site-font:var(--apcc-font-family,"Noto Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif);
  --serif:var(--site-font);
  --sans:var(--site-font);
  --mono:var(--site-font);
  --maxw:var(--site-wrapper-width,1400px); /* same wrapper as the site header/footer */

  font-family:var(--sans); color:var(--ink); line-height:1.62; font-size:16px;
  -webkit-font-smoothing:antialiased;
}
.apcc-cl *,.apcc-cl *::before,.apcc-cl *::after{box-sizing:border-box;}
.apcc-cl a:not(.apcc-cl-btn){color:var(--green);text-underline-offset:3px;}
.apcc-cl a:not(.apcc-cl-btn):hover{color:var(--active);}
.apcc-cl :focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px;}
.apcc-cl-wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--site-wrapper-gutter,2rem);}
.apcc-cl-skip{position:absolute;left:-999px;top:0;z-index:50;background:var(--green);color:var(--apcc-white);padding:.7rem 1.1rem;border-radius:0 0 var(--r-sm) 0;font-weight:600;}
.apcc-cl-skip:focus{left:0;}

/* ---------- Eyebrow / headings ---------- */
.apcc-cl-eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--active);margin:0 0 .55rem;display:flex;align-items:center;gap:.6rem;font-weight:600;}
.apcc-cl-eyebrow::before{content:"";width:30px;height:2px;background:var(--gold);display:inline-block;}
.apcc-cl h1,.apcc-cl h2,.apcc-cl h3{font-family:var(--serif);color:var(--ink);line-height:1.15;letter-spacing:-.01em;}
/* Out-specific the theme's "body:not(.apcc-home-page) h2/h3 { text-align:center;
   margin-bottom:2rem }" rule inside the library. */
body:not(.apcc-home-page) .apcc-cl h1,body:not(.apcc-home-page) .apcc-cl h2,body:not(.apcc-home-page) .apcc-cl h3,.apcc-cl-page .apcc-cl h1,.apcc-cl-page .apcc-cl h2,.apcc-cl-page .apcc-cl h3{text-align:left;}
body:not(.apcc-home-page) .apcc-cl .apcc-cl-card h3,.apcc-cl .apcc-cl-card h3{margin:0;}

/* ---------- Buttons ---------- */
.apcc-cl-btn{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:650;text-decoration:none;padding:.7rem 1.2rem;border-radius:999px;border:1.5px solid transparent;cursor:pointer;background:var(--active);color:var(--apcc-white);transition:transform .15s,background .15s,border-color .15s,box-shadow .15s;}
.apcc-cl-btn:hover{transform:translateY(-1px);}
.apcc-cl-btn-primary{background:var(--active);color:var(--apcc-white);box-shadow: none;}
.apcc-cl-btn-primary:hover{background:var(--green);color:var(--apcc-white);}
.apcc-cl-btn-gold{background:var(--gold);color:#3a2e00;}
.apcc-cl-btn-gold:hover{background:var(--apcc-gold-bright);color:#3a2e00;}
.apcc-cl-btn-solid{background:var(--apcc-white);color:var(--green);}
.apcc-cl-btn-solid:hover{background:var(--mint);color:var(--green);}
.apcc-cl-btn-outline{background:transparent;border-color:var(--line);color:var(--green);}
.apcc-cl-btn-outline:hover{border-color:var(--active);background:var(--green-tint);}
.apcc-cl-btn-ghost{background:transparent;border-color:rgba(255,255,255,.45);color:var(--apcc-mint-100);}
.apcc-cl-btn-ghost:hover{border-color:var(--apcc-white);background:rgba(255,255,255,.12);color:var(--apcc-white);}
.apcc-cl-btn-block{width:100%;justify-content:center;}

/* ---------- Chips & badges ---------- */
.apcc-cl-chip{display:inline-block;font-size:.74rem;font-weight:650;padding:.26rem .66rem;border-radius:999px;background:var(--green-tint);color:var(--green-deep);border:1px solid var(--apcc-mint-200);}
.apcc-cl-chip-country{background:var(--mint);border-color:var(--apcc-mint-200);color:var(--green-deep);}
.apcc-cl-chip-theme{background:var(--gold-tint);border-color:var(--apcc-warn-line);color:#7a5b00;}
.apcc-cl-badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.01em;padding:.26rem .7rem;border-radius:999px;}
.apcc-cl-badge-member{background:var(--orange-tint);color:#8a4a13;border:1px solid var(--apcc-warn-line);}
.apcc-cl-badge-member.is-pending{background:var(--apcc-mint-100);color:var(--apcc-muted);border-color:var(--apcc-mint-200);}
.apcc-cl-badge-type{background:var(--gold-tint);color:#7a5b00;border:1px solid var(--apcc-warn-line);}

/* ---------- HERO (directory + profile) ---------- */
.apcc-cl-hero{position:relative;border-radius:0;color:var(--apcc-mint-100);background:var(--apcc-hero-gradient);}
.apcc-cl-hero .apcc-cl-wrap{position:relative;z-index:2;padding-block:clamp(1.5rem,3.2vw,2.2rem);}
/* Clear the theme's fixed header when the hero is the first element (kept just
   large enough to sit below the header, then tightened). */
.apcc-cl-page .apcc-cl > .apcc-cl-hero:first-child .apcc-cl-wrap{padding-top:clamp(5.5rem,8vw,7rem);}
.apcc-cl-hero h1{font-size:clamp(2.25rem,4.4vw,3rem);font-weight:700;margin:.4rem 0 0;color:var(--apcc-white);line-height:1.08;}
.apcc-cl-batchpill{display:inline-flex;align-items:center;gap:.5rem;background:rgba(231,125,37,.92);color:var(--apcc-ink);font-weight:700;font-size:.8rem;padding:.3rem .8rem;border-radius:999px;}
.apcc-cl-hero .apcc-cl-eyebrow{color:var(--apcc-mint-300);}
.apcc-cl-hero .apcc-cl-eyebrow::before{background:var(--gold);}
.apcc-cl-hero-sub{font-size:1rem;max-width:64ch;margin:1rem 0 0;color:var(--apcc-mint-100);font-weight:400;line-height:1.62;}
.apcc-cl-hero-note{max-width:62ch;margin:.7rem 0 0;color:var(--apcc-mint-300);font-size:.95rem;}
.apcc-cl-hero-rule{width:64px;height:3px;background:var(--gold);border-radius:3px;margin:1.4rem 0 0;}
.apcc-cl-hero-badges{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.1rem 0 0;}
.apcc-cl-hero-badge{font-size:.8rem;font-weight:650;padding:.34rem .8rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);color:var(--apcc-mint-100);}
.apcc-cl-hero-badge.is-gold{background:var(--gold);border-color:transparent;color:#3a2e00;}
.apcc-cl-hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem .85rem;margin:1.15rem 0 0;font-size:.92rem;font-weight:500;color:var(--apcc-mint-200);}
.apcc-cl-hero-meta-lead{font-weight:700;color:var(--apcc-white);display:inline-flex;align-items:center;gap:.5rem;}
.apcc-cl-hero-meta-lead::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(255,193,7,.2);}
.apcc-cl-hero-meta-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.42);}
.apcc-cl-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.6rem 0 0;}

/* ---------- Stats band ---------- */
.apcc-cl-statsband{position:relative;z-index:5;}
.apcc-cl-stats{margin-top:-2.6rem;background:var(--apcc-white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow: none;display:grid;grid-template-columns:repeat(5,1fr);overflow:hidden;}
.apcc-cl-stat{padding:1.5rem 1rem;text-align:center;border-right:1px solid var(--line-soft);}
.apcc-cl-stat:last-child{border-right:0;}
.apcc-cl-stat b{display:block;font-size:2.15rem;font-weight:800;color:var(--green-deep);line-height:1;letter-spacing:-.01em;}
.apcc-cl-stat span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-top:.55rem;font-weight:700;}
.apcc-cl-stat:last-child b{color:#b07d00;}
.apcc-cl-stat:last-child span{color:#a07a2c;}
@media (max-width:820px){.apcc-cl-stats{grid-template-columns:repeat(3,1fr);}.apcc-cl-stat{border-bottom:1px solid var(--line-soft);}.apcc-cl-stat:nth-child(3n){border-right:0;}}
@media (max-width:480px){.apcc-cl-stats{grid-template-columns:repeat(2,1fr);margin-top:-1.2rem;}.apcc-cl-stat:nth-child(3n){border-right:1px solid var(--line-soft);}.apcc-cl-stat:nth-child(2n){border-right:0;}}

/* ---------- Validation notice ---------- */
.apcc-cl-notice{display:flex;gap:.7rem;align-items:flex-start;margin:1.6rem 0 0;padding:.9rem 1.1rem;border-radius:var(--r);background:var(--mint);border:1px solid var(--apcc-mint-200);color:var(--green-deep);font-size:.92rem;}
.apcc-cl-notice::before{content:"";flex:0 0 auto;width:.6rem;height:.6rem;border-radius:50%;background:var(--gold);margin-top:.45rem;box-shadow:0 0 0 4px rgba(255,193,7,.22);}

/* ---------- Toolbar / filters ---------- */
/* Overlaps the hero like the approved mockup (.dir-toolbar). */
.apcc-cl-toolbar{background:var(--apcc-white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow: none;padding:clamp(1.1rem,2.5vw,1.5rem);margin-top:-2rem;position:relative;z-index:5;}
.apcc-cl-search-label{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.5rem;}
.apcc-cl-keyword-wrap{position:relative;}
.apcc-cl-keyword{width:100%;font:inherit;font-size:1rem;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:999px;background:var(--apcc-white);color:var(--ink);}
.apcc-cl-keyword:focus-visible{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px rgba(0,164,153,.18);}
.apcc-cl-filtergrid{margin-top:.9rem;display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem;}
.apcc-cl-field{display:flex;flex-direction:column;gap:.32rem;min-width:0;}
.apcc-cl-field label{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;}
.apcc-cl-field select{font:inherit;font-size:.86rem;color:var(--ink);background:var(--apcc-white);border:1.5px solid var(--line);border-radius:12px;padding:.55rem .6rem;padding-right:1.9rem;cursor:pointer;width:100%;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23034C43' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;background-size:12px 8px;}
/* Pin the arrow image/size in every state — the theme's global select rules
   swap in a size-less SVG on hover/focus which otherwise fills the control. */
.apcc-cl-field select:hover,.apcc-cl-field select:focus,.apcc-cl-field select:focus-visible{border-color:var(--teal);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23034C43' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;background-size:12px 8px !important;background-position:right .7rem center !important;padding-right:1.9rem !important;}
.apcc-cl-field select:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,164,153,.18);}

/* Custom dropdowns (JS replaces the native selects; select stays hidden inside) */
.apcc-cl-dd{position:relative;min-width:0;}
.apcc-cl-dd select{display:none !important;}
.apcc-cl-dd-btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;font:inherit;font-size:.86rem;color:var(--ink);background:var(--apcc-white);border:1.5px solid var(--line);border-radius:12px;padding:.55rem .7rem .55rem .6rem;cursor:pointer;text-align:left;transition:border-color .14s;}
.apcc-cl-dd-btn:hover{border-color:var(--teal);}
.apcc-cl-dd-btn:focus-visible{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px rgba(0,164,153,.18);}
.apcc-cl-dd-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.apcc-cl-dd-caret{flex:0 0 auto;width:12px;height:8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23034C43' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat center/12px 8px;}
/* Grow to fit the longest option on one line (never wrap); at least as wide as
   the button. Tall enough that the list only scrolls when the screen is short. */
.apcc-cl-dd-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:auto;min-width:100%;width:max-content;max-width:min(94vw,540px);max-height:min(80vh,900px);overflow-y:auto;overflow-x:hidden;background:var(--apcc-white);border:1px solid var(--line);border-radius:12px;box-shadow: none;margin:0;padding:.3rem;list-style:none;scrollbar-width:thin;scrollbar-color:var(--apcc-mint-200) var(--apcc-white);}
/* Thin, white-tracked scrollbar (only visible when the list scrolls). */
.apcc-cl-dd-list::-webkit-scrollbar{width:8px;}
.apcc-cl-dd-list::-webkit-scrollbar-track{background:var(--apcc-white);border-radius:12px;}
.apcc-cl-dd-list::-webkit-scrollbar-thumb{background:var(--apcc-mint-200);border-radius:999px;border:2px solid var(--apcc-white);}
.apcc-cl-dd-list::-webkit-scrollbar-thumb:hover{background:var(--apcc-mint-300);}
/* Rightmost filter (Research domain): anchor right so the wider panel opens inward. */
.apcc-cl-filtergrid .apcc-cl-field:last-child .apcc-cl-dd-list{left:auto;right:0;}
/* Extra right padding keeps the longest option clear of the scrollbar when it appears. */
.apcc-cl-dd-list li{padding:.45rem 1rem .45rem .7rem;border-radius:8px;font-size:.86rem;cursor:pointer;color:var(--ink);margin:0;white-space:nowrap;}
.apcc-cl-dd-list li:hover{background:var(--teal-tint);color:var(--green-deep);}
.apcc-cl-dd-list li[aria-selected="true"]{background:var(--teal);color:var(--apcc-white);}
@media (max-width:900px){.apcc-cl-filtergrid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.apcc-cl-filtergrid{grid-template-columns:1fr;}}
.apcc-cl-selected{margin-top:.9rem;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;}
.apcc-cl-selected[hidden]{display:none;}
.apcc-cl-selected-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;}
.apcc-cl-selchip{font:inherit;font-size:.8rem;font-weight:600;color:var(--apcc-white);background:var(--teal);border:1.5px solid var(--teal);border-radius:999px;padding:.28rem .35rem .28rem .72rem;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:background .14s,border-color .14s;}
.apcc-cl-selchip:hover,.apcc-cl-selchip:focus-visible{background:var(--orange);border-color:var(--orange);outline:none;}
.apcc-cl-selchip span{font-size:1.05rem;line-height:1;}
.apcc-cl-toolbar-meta{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:1.1rem;color:var(--muted);font-size:.88rem;}
.apcc-cl-count b{color:inherit;font-weight:600;}
.apcc-cl-reset{font:inherit;font-size:.85rem;font-weight:600;color:var(--green);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.apcc-cl-reset:hover{color:var(--teal);}

/* ---------- Directory grid + cards ---------- */
/* Same responsive card density as the mockup (.dir-grid). */
.apcc-cl-grid{margin-top:1.6rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1.1rem;}
.apcc-cl-card{display:flex;flex-direction:column;background:var(--apcc-white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow: none;overflow:hidden;transition:transform .15s,box-shadow .15s;text-align:left;}
.apcc-cl-card h3,.apcc-cl-card-top,.apcc-cl-card-body{text-align:left;}
.apcc-cl-card:hover{transform:translateY(-3px);box-shadow: none;}
.apcc-cl-card-top{padding:1.2rem 1.3rem 1rem;border-bottom:1px solid var(--line-soft);}
.apcc-cl-card-top .apcc-cl-badge-member{margin-bottom:.6rem;}
/* Card badges: smaller + lighter weight than the base badge. */
.apcc-cl-card .apcc-cl-badge{font-size:.66rem;font-weight:500;letter-spacing:0;padding:.2rem .55rem;}
.apcc-cl-card h3{font-size:1.2rem;margin:0;color:var(--ink);line-height:1.2;}
.apcc-cl-card h3 a{color:inherit;text-decoration:none;}
.apcc-cl-card h3 a:hover{color:var(--teal);}
.apcc-cl-card-full{margin:.3rem 0 0;font-size:.84rem;color:var(--muted);line-height:1.4;}
.apcc-cl-card-body{padding:1rem 1.3rem 1.2rem;display:flex;flex-direction:column;gap:.7rem;flex:1;}
.apcc-cl-card-summary{font-size:.9rem;color:var(--ink-soft);margin:0;}
.apcc-cl-facts{display:flex;flex-wrap:wrap;gap:.4rem;}
/* Match the membership badge above the title (same size/weight/padding). */
.apcc-cl-facts span{font-size:.66rem;font-weight:500;letter-spacing:0;color:var(--green-deep);background:var(--teal-tint);border:1px solid var(--apcc-mint-200);border-radius:999px;padding:.2rem .55rem;}
.apcc-cl-card-domains{font-size:.85rem;color:var(--ink-soft);}
.apcc-cl-card-domains b{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.2rem;}
.apcc-cl-card-foot{margin-top:auto;padding-top:.4rem;}
.apcc-cl-card-link{display:inline-flex;align-items:center;gap:.4rem;font-weight:650;text-decoration:none;color:var(--green);}
.apcc-cl-card-link:hover{color:var(--teal);}
.apcc-cl-complete{font-size:.7rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;display:inline-flex;align-items:center;gap:.3rem;}
.apcc-cl-complete::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor;}
.apcc-cl-complete.is-ok{background:var(--green-tint);color:var(--apcc-green-600);}
.apcc-cl-complete.is-pending{background:var(--gold-tint);color:var(--apcc-warn-ink);}

/* ---------- Empty state ---------- */
.apcc-cl-empty{margin-top:1.6rem;padding:2rem 1.5rem;text-align:center;border:1px dashed var(--line);border-radius:var(--r-lg);background:var(--apcc-white);color:var(--muted);}

/* ---------- Intro note (below the grid, like the mockup .acp-note) ---------- */
.apcc-cl-note{padding:.9rem 1.05rem;border-radius:var(--r);background:var(--apcc-info-bg);border:1px solid var(--apcc-mint-200);color:var(--green);font-size:.92rem;}
.apcc-cl-intro-note{margin-top:1.4rem;margin-bottom:2rem;}

/* ---------- Provenance band (like the mockup .acp-prov) ---------- */
.apcc-cl-prov{background:var(--apcc-ink);color:var(--apcc-mint-300);margin-top:2.4rem;}
.apcc-cl-prov .apcc-cl-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;padding-block:1.4rem;}
.apcc-cl-prov div b{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:#7fb8af;margin-bottom:.3rem;}
.apcc-cl-prov div span{font-size:.88rem;color:var(--apcc-mint-200);line-height:1.5;}
@media (max-width:760px){.apcc-cl-prov .apcc-cl-wrap{grid-template-columns:1fr;gap:1rem;}}

/* ============================================================
   PROFILE PAGE
   ============================================================ */
.apcc-cl-breadcrumb{font-size:.85rem;color:var(--apcc-mint-300);padding:0 0 1.1rem;}
.apcc-cl-breadcrumb a{color:var(--apcc-mint-100);text-decoration:none;}
.apcc-cl-breadcrumb a:hover{text-decoration:underline;}
.apcc-cl-breadcrumb .sep{margin:0 .5rem;color:rgba(255,255,255,.4);}

.apcc-cl-phero{position:relative;overflow:hidden;color:var(--apcc-mint-100);border-radius:0;margin:0;background:var(--apcc-hero-gradient);}
.apcc-cl-phero::before{content:none;}
.apcc-cl-phero-inner{position:relative;z-index:2;padding:0 0 clamp(1.8rem,4vw,2.6rem);}
.apcc-cl-page .apcc-cl-phero .apcc-cl-wrap{padding-top:clamp(6.5rem,10vw,9rem);}
.apcc-cl-phero h1{font-size:clamp(2.25rem,4.4vw,3rem);font-weight:700;margin:0;color:var(--apcc-white);}
.apcc-cl-phero-full{font-size:clamp(1rem,2.2vw,1.18rem);color:var(--apcc-mint-200);margin:.6rem 0 0;font-weight:500;}
.apcc-cl-phero-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.1rem 0 0;}
.apcc-cl-phero-chips .apcc-cl-badge{background:rgba(255,255,255,.14);color:var(--apcc-mint-100);border:1px solid rgba(255,255,255,.28);}
.apcc-cl-phero-chips .apcc-cl-badge.is-gold{background:var(--gold);color:#3a2e00;border-color:transparent;}
.apcc-cl-phero-summary{max-width:64ch;margin:1.2rem 0 0;color:var(--apcc-mint-200);}
.apcc-cl-phero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.5rem 0 0;}

/* At-a-glance metric tiles */
.apcc-cl-glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin:0;}
.apcc-cl-tile{border:1px solid var(--line);border-radius:var(--r);padding:.85rem .95rem;background:var(--apcc-white);}
.apcc-cl-tile dt{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 .3rem;display:flex;align-items:center;gap:.35rem;}
.apcc-cl-tile dd{margin:0;font-weight:650;color:var(--ink);font-size:.96rem;}
.apcc-cl-tile dd.is-tbc{color:var(--apcc-warn-ink);font-weight:600;font-style:italic;font-size:.86rem;}

/* Layout: main + sidebar */
.apcc-cl-player{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(1.3rem,3vw,2rem);align-items:start;margin:1.6rem 0 2.4rem;}
@media (max-width:920px){.apcc-cl-player{grid-template-columns:1fr;}}
.apcc-cl-stack{display:flex;flex-direction:column;gap:1.3rem;min-width:0;}
.apcc-cl-side{display:flex;flex-direction:column;gap:1.1rem;}

/* Sticky section nav */
.apcc-cl-secnav{position:sticky;top:1rem;background:var(--apcc-white);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--shadow-sm);}
.apcc-cl-secnav b{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .55rem;}
.apcc-cl-secnav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem;}
.apcc-cl-secnav a{display:block;padding:.36rem .55rem;border-radius:8px;font-size:.86rem;color:var(--ink-soft);text-decoration:none;border-left: 0;}
.apcc-cl-secnav a:hover{background:var(--mint);color:var(--green);}
.apcc-cl-secnav a.is-active{background:var(--green-tint);color:var(--green-deep);border-left-color:var(--gold);font-weight:600;}
@media (max-width:920px){.apcc-cl-secnav{position:static;display:flex;flex-direction:column;}.apcc-cl-secnav ul{flex-direction:row;flex-wrap:wrap;gap:.3rem;}.apcc-cl-secnav a{border-left:0;border:1px solid var(--line);border-radius:999px;}.apcc-cl-secnav a.is-active{border-color:var(--gold);}}

/* Section cards */
.apcc-cl-section{background:var(--apcc-white);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.2rem,3vw,1.8rem);box-shadow: none;scroll-margin-top:1rem;}
.apcc-cl-section>h2{font-size:clamp(1.25rem,2.6vw,1.6rem);margin:0 0 .9rem;color:var(--ink);}
.apcc-cl-section .apcc-cl-eyebrow{margin-bottom:.3rem;}
.apcc-cl-prose p{margin:0 0 .9rem;color:var(--ink-soft);}
.apcc-cl-prose p:last-child{margin-bottom:0;}

/* Source note / missing-data callouts */
.apcc-cl-srcnote{margin-top:1rem;padding:.8rem 1rem;border-radius:var(--r);background:var(--mint);border:1px solid var(--apcc-mint-200);color:var(--green-deep);font-size:.88rem;}
.apcc-cl-missing{border:1px dashed var(--line);border-radius:var(--r);padding:1rem 1.1rem;background:var(--apcc-white);color:var(--ink-soft);font-size:.92rem;}
.apcc-cl-missing b{color:var(--ink);}
.apcc-cl-callout{padding:1rem 1.15rem;border-radius:var(--r);background:var(--gold-tint);border:1px solid var(--apcc-warn-line);color:#6f5300;font-size:.92rem;}

/* Research theme cards */
.apcc-cl-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;}
.apcc-cl-theme{border:1px solid var(--line);border-radius:var(--r);padding:.85rem 1rem;background:var(--apcc-white);}
.apcc-cl-theme b{display:block;color:var(--ink);font-size:.95rem;}

/* Rows (institutions, funders, data access) */
.apcc-cl-rows{display:grid;gap:.1rem;margin:0;}
.apcc-cl-row{display:grid;grid-template-columns:190px 1fr;gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--line-soft);align-items:baseline;}
.apcc-cl-row:last-child{border-bottom:0;}
.apcc-cl-row dt{font-weight:650;color:var(--ink);font-size:.9rem;}
.apcc-cl-row dd{margin:0;color:var(--ink-soft);font-size:.93rem;word-break:break-word;}
@media (max-width:560px){.apcc-cl-row{grid-template-columns:1fr;gap:.15rem;}}

/* Location card — real Google Maps embed (keyless iframe) */
.apcc-cl-geo{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--apcc-white);}
.apcc-cl-geo-map{position:relative;aspect-ratio:5/3;background:var(--mint);}
.apcc-cl-geo-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
/* Consent placeholder shown until the visitor opts in to load Google Maps. */
.apcc-cl-geo-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;text-align:center;padding:1.5rem;background:radial-gradient(120% 120% at 30% 20%,var(--apcc-green-600) 0%,var(--green) 55%,var(--green-deep) 100%);color:var(--apcc-mint-100);}
.apcc-cl-geo-consent-txt{margin:0;max-width:44ch;font-size:.9rem;line-height:1.5;color:var(--apcc-mint-200);}
.apcc-cl-geo-consent-note{margin:0;font-size:.8rem;color:var(--apcc-mint-300);}
.apcc-cl-geo-consent-link{color:var(--apcc-mint-100);font-weight:600;}
.apcc-cl-geo-body{padding:1rem 1.15rem 1.2rem;}
.apcc-cl-geo-coords{display:flex;gap:1.4rem;}
.apcc-cl-geo-coords span{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.apcc-cl-geo-coords b{font-family:var(--mono);font-size:.98rem;color:var(--green);}
.apcc-cl-geo-empty{padding:1.2rem;color:var(--ink-soft);font-size:.92rem;}

/* Readiness / FAIR checklist */
.apcc-cl-verify{display:grid;gap:.1rem;}
.apcc-cl-vrow{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line-soft);}
.apcc-cl-vrow:last-child{border-bottom:0;}
.apcc-cl-vrow>span:first-child{font-weight:600;color:var(--ink);font-size:.92rem;}
.apcc-cl-status{font-size:.74rem;font-weight:700;padding:.26rem .7rem;border-radius:999px;white-space:nowrap;border:1px solid transparent;}
.apcc-cl-status.ok{background:var(--green-tint);color:var(--apcc-green-600);border-color:var(--apcc-mint-300);}
.apcc-cl-status.soft{background:var(--gold-tint);color:var(--apcc-warn-ink);border-color:var(--apcc-warn-line);}
.apcc-cl-status.none{background:var(--apcc-danger-bg);color:#7a5151;border-color:var(--apcc-mint-200);}
.apcc-cl-status.internal{background:var(--apcc-mint-100);color:var(--apcc-muted);border-color:var(--apcc-mint-200);}

/* CTA panel */
.apcc-cl-cta{position:relative;overflow:hidden;color:var(--apcc-mint-100);border-radius:var(--r-lg);background:radial-gradient(600px 260px at 90% -40%,rgba(32,140,47,.4),transparent 60%),linear-gradient(135deg,var(--green),var(--apcc-green-700));padding:clamp(1.6rem,3.2vw,2.4rem);}
.apcc-cl-cta h2{color:var(--apcc-white);margin:0 0 .7rem;font-size:1.3rem;}
.apcc-cl-cta p{color:var(--apcc-mint-200);margin:0 0 1.4rem;max-width:60ch;}
/* Separate the form's own title from the intro paragraph above it. */
.apcc-cl-cta .apcc-cl-form-title{margin-top:.4rem;}
.apcc-cl-cta .apcc-cl-eyebrow{color:var(--apcc-mint-300);}
.apcc-cl-cta .apcc-cl-form label{color:var(--apcc-mint-100);}
.apcc-cl-cta .apcc-cl-form-title{color:var(--apcc-white);}
.apcc-cl-cta .apcc-cl-form small,.apcc-cl-cta .apcc-cl-form .apcc-cl-hint,.apcc-cl-cta .apcc-cl-form p{color:var(--apcc-mint-200);}
.apcc-cl-cta .apcc-cl-form-status.is-ok{color:#8ff0b8;}

/* Publications placeholder */
.apcc-cl-pubph{border:1px dashed var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;background:var(--apcc-white);}
.apcc-cl-pubph .tag{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--apcc-mint-100);border:1px solid var(--apcc-mint-200);padding:.2rem .55rem;border-radius:999px;margin-bottom:.5rem;}

/* Forms (correction/contact) */
.apcc-cl-form{max-width:640px;}
.apcc-cl-form-title{margin:0 0 12px;color:var(--green);font-family:var(--serif);}
.apcc-cl-form .apcc-cl-field{margin-bottom:18px;}
.apcc-cl-form label{display:block;font-weight:600;color:var(--charcoal);margin-bottom:7px;font-family:var(--sans);font-size:.9rem;letter-spacing:0;text-transform:none;}
.apcc-cl-form input[type="text"],.apcc-cl-form input[type="email"],.apcc-cl-form input[type="url"],.apcc-cl-form select,.apcc-cl-form textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:9px;font:inherit;}
.apcc-cl-form input:focus,.apcc-cl-form select:focus,.apcc-cl-form textarea:focus{outline:2px solid var(--active);outline-offset:1px;border-color:var(--active);}
.apcc-cl-consent{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin:18px 0 22px;}
.apcc-cl-consent input{margin-top:4px;}
.apcc-cl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.apcc-cl-form-status{min-height:1.2em;font-weight:600;margin:0;}
.apcc-cl-form-status:empty{min-height:0;}
.apcc-cl-form-status.is-ok{color:var(--active);}
.apcc-cl-form-status.is-error{color:var(--apcc-danger);}
.apcc-cl-form-status.is-pending{color:var(--muted);}

/* Membership/contact side card */
.apcc-cl-sidecard{background:var(--apcc-white);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);}
.apcc-cl-sidecard h3{font-size:.95rem;margin:0 0 .5rem;color:var(--green);}
.apcc-cl-sidecard p{margin:.4rem 0 0;font-size:.88rem;color:var(--ink-soft);}

/* ---------- Optional plugin chrome (when enabled) ---------- */
.apcc-cl-chrome-header{background:var(--mint);border-bottom:1px solid var(--line);padding:.9rem 0;}
.apcc-cl-chrome-header .apcc-cl-wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.apcc-cl-chrome-brand{display:flex;align-items:center;gap:.6rem;color:var(--green);font-weight:700;}
.apcc-cl-chrome-mark{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,var(--active),var(--green));color:var(--apcc-white);display:grid;place-items:center;font-family:var(--serif);font-weight:700;}
.apcc-cl-chrome-nav{display:flex;flex-wrap:wrap;gap:.2rem;list-style:none;margin:0;padding:0;}
.apcc-cl-chrome-nav a{padding:.4rem .8rem;border-radius:999px;color:var(--charcoal);text-decoration:none;font-size:.9rem;font-weight:500;}
.apcc-cl-chrome-nav a:hover{background:var(--apcc-white);}
.apcc-cl-chrome-nav a.is-active{color:var(--active);font-weight:700;}
.apcc-cl-chrome-footer{background:var(--footer);color:var(--apcc-mint-200);margin-top:2rem;}
.apcc-cl-chrome-footer .apcc-cl-wrap{padding:2rem 1rem;}
.apcc-cl-chrome-footer a{color:var(--apcc-mint-200);}

/* ---------- Admin status pills (admin screens reuse this CSS) ---------- */
.apcc-status-published{background:rgba(20,138,59,.16);color:var(--apcc-green-600);}
.apcc-status-draft{background:var(--apcc-mint-100);color:var(--apcc-text);}
.apcc-status-review_required{background:rgba(255,193,7,.22);color:#7a5b00;}
.apcc-status-excluded{background:var(--apcc-danger-bg);color:var(--apcc-danger);}
.apcc-row-actions form{margin:0 2px 2px 0;}
.apcc-row-actions .button{margin:0 1px 2px 0;}

/* ---------- Print ---------- */
@media print{
  .apcc-cl-hero,.apcc-cl-phero,.apcc-cl-cta{background:var(--apcc-white) !important;color:#000 !important;}
  .apcc-cl-hero h1,.apcc-cl-phero h1,.apcc-cl-cta h2{color:#000 !important;}
  .apcc-cl-toolbar,.apcc-cl-secnav,.apcc-cl-hero-actions,.apcc-cl-phero-actions,.apcc-cl-btn{display:none !important;}
  .apcc-cl-card,.apcc-cl-section{box-shadow:none;border:1px solid var(--apcc-mint-300);break-inside:avoid;}
  .apcc-cl-player{grid-template-columns:1fr;}
}
