/* CCCKL Directory front end — self-contained, theme-independent.
   Everything is scoped under .ccckl so no theme styles bleed in and this
   never leaks out. Concrete values only (no theme variables).
   Fonts are self-hosted (no external requests). */

@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/public-sans-400.woff2") format("woff2");}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/public-sans-600.woff2") format("woff2");}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/public-sans-700.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-400.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-500.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/ibm-plex-mono-600.woff2") format("woff2");}

/* ===== tokens (concrete, scoped) ===== */
.ccckl{
  --c-bg:#ffffff; --c-fg:#1c2340; --c-civic:#293f95; --c-civic-dark:#1c2c6b;
  --c-accent:#e16e38; --c-wash:#eef1fa; --c-line:#d6dcef; --c-muted:#565e79;
  --c-amber:#8a5a00; --c-amber-wash:#fdf6e7; --c-green:#15633b; --c-green-wash:#ebf5ef;
  --c-inactive-fg:#3d0c0a; --c-inactive-bg:#ff6961; --c-inactive-border:#c2423b;
  --c-mark:#fde68a; --c-fg80:rgba(28,35,64,.8); --c-civic25:rgba(41,63,149,.25);
  --f-sans:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --container:64rem; --radius-tile:.5rem; --radius-xl:.75rem;

  box-sizing:border-box; color:var(--c-fg); font-family:var(--f-sans);
  font-size:16px; line-height:1.5; background:var(--c-bg);
}
.ccckl *,.ccckl *::before,.ccckl *::after{box-sizing:border-box;}
.ccckl a{color:inherit;text-decoration:none;}
.ccckl :where(a,button,input,textarea,select):focus-visible{outline:3px solid var(--c-civic);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.ccckl *{animation-duration:.01ms!important;transition-duration:.01ms!important;}}

/* ===== layout ===== */
.ccckl-wrap{max-width:var(--container);margin-inline:auto;width:100%;padding-inline:16px;}
@media (min-width:640px){.ccckl-wrap{padding-inline:24px;}}
.ccckl-fullbleed{width:100%;}

/* ===== full-page shell (branded header + footer, no theme chrome) ===== */
body.ccckl-fullpage{margin:0;background:#fff;}
.ccckl-site{min-height:100vh;display:flex;flex-direction:column;}
.ccckl-sitemain{flex:1 0 auto;}
.ccckl-siteheader{background:#fff;}
.ccckl-siteheader__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;padding-bottom:16px;}
.ccckl-logo-link{display:inline-flex;align-items:center;}
.ccckl-logo{height:40px;width:auto;display:block;}
@media (min-width:640px){.ccckl-logo{height:44px;}}
.ccckl-siteheader__right{display:flex;align-items:center;gap:16px;}
.ccckl-siteheader__label{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--c-muted);display:none;}
@media (min-width:640px){.ccckl-siteheader__label{display:block;}}
.ccckl-accent{height:4px;background:var(--c-accent);}
.ccckl-sitefooter{border-top:1px solid var(--c-line);margin-top:64px;}
.ccckl-sitefooter__inner{padding-top:32px;padding-bottom:32px;}
.ccckl-sitefooter__text{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--c-muted);margin:0;}

/* ===== shared button + input additions ===== */
.ccckl-btn--danger{border-color:var(--c-inactive-border);color:var(--c-inactive-fg);}
.ccckl-btn--danger:hover:not([disabled]){background:var(--c-inactive-bg);border-color:var(--c-inactive-border);color:var(--c-inactive-fg);}
.ccckl-btn[disabled]{opacity:.5;cursor:not-allowed;}
.ccckl-input{border:1px solid rgba(28,35,64,.4);padding:7px 10px;font-size:14px;color:var(--c-fg);
  border-radius:0;background:#fff;font-family:inherit;min-width:0;}
.ccckl-input::placeholder{color:var(--c-muted);}

/* ===== notices ===== */
.ccckl-notice{margin:16px 0;padding:10px 14px;border:1px solid;font-size:14px;font-weight:500;}
.ccckl-notice--ok{color:var(--c-green);border-color:var(--c-green);background:var(--c-green-wash);}
.ccckl-notice--err{color:var(--c-inactive-fg);border-color:var(--c-inactive-border);background:var(--c-inactive-bg);}

/* ===== manage page ===== */
.ccckl-manage .ccckl-manage-list{list-style:none;margin:16px 0 0;padding:0;}
.ccckl-manage-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--c-line);}
.ccckl-manage-row:first-child{border-top:0;}
.ccckl-manage-form{display:flex;align-items:center;gap:8px;flex:1 1 auto;flex-wrap:wrap;margin:0;}
.ccckl-manage-form input[type="color"]{width:34px;height:34px;padding:0;border:1px solid var(--c-line);background:#fff;cursor:pointer;flex-shrink:0;}
.ccckl-manage-form .ccckl-input[name="name"]{flex:1 1 160px;}
.ccckl-manage-form .ccckl-input[name="website"]{flex:2 1 200px;}
.ccckl-manage-count{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--c-muted);white-space:nowrap;}
.ccckl-manage-del{margin:0;flex-shrink:0;}
.ccckl-manage-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--c-line);}
.ccckl-manage-add input[type="color"]{width:34px;height:34px;padding:0;border:1px solid var(--c-line);background:#fff;cursor:pointer;flex-shrink:0;}
.ccckl-manage-add .ccckl-input{flex:1 1 200px;}

/* ===== draft (saved, not published — staff only) ===== */
.ccckl-draftbadge{display:inline-flex;align-items:center;border:1px solid var(--c-amber);background:var(--c-amber-wash);
  color:var(--c-amber);border-radius:9999px;padding:1px 8px;font-family:var(--f-mono);font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;margin-right:6px;}
.ccckl-draftbanner{border-top:1px solid var(--c-amber);border-bottom:1px solid var(--c-amber);background:var(--c-amber-wash);}
.ccckl-draftbanner__label{font-family:var(--f-mono);font-size:13px;font-weight:600;text-transform:uppercase;
  letter-spacing:.14em;color:var(--c-amber);margin:0;}
.ccckl-draftbanner__note{margin-top:4px;font-size:15px;font-weight:500;color:var(--c-amber);}

/* ===== generated organization avatar (initials tile) ===== */
.ccckl-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  color:#fff;font-weight:600;line-height:1;text-transform:uppercase;font-family:var(--f-sans);
  border:1px solid var(--c-line);}
.ccckl-avatar--card{width:40px;height:40px;font-size:15px;border-radius:4px;}
.ccckl-avatar--detail{width:56px;height:56px;font-size:20px;border-radius:6px;margin-top:4px;}

/* ===== eyebrow / micro-label ===== */
.ccckl-eyebrow{font-family:var(--f-mono);font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.18em;color:var(--c-muted);}

/* ===== LIST: intro block ===== */
.ccckl-intro{padding-top:40px;padding-bottom:32px;border-bottom:1px solid var(--c-line);}
.ccckl-intro__row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;}
.ccckl-h1{font-size:1.875rem;font-weight:700;letter-spacing:-.02em;max-width:42rem;line-height:1.1;margin:0;}
@media (min-width:640px){.ccckl-h1{font-size:2.25rem;}}
.ccckl-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ccckl-btn{display:inline-flex;align-items:center;border:1px solid var(--c-line);padding:6px 12px;
  font-size:.875rem;font-weight:600;color:var(--c-muted);border-radius:0;background:none;cursor:pointer;white-space:nowrap;}
.ccckl-btn:hover{border-color:var(--c-fg);color:var(--c-fg);}
.ccckl-btn--civic{border-color:var(--c-civic);color:var(--c-civic);}
.ccckl-btn--civic:hover{background:var(--c-civic);color:#fff;}
.ccckl-lead{margin-top:12px;max-width:42rem;font-size:1.125rem;color:var(--c-muted);}

/* ===== search ===== */
.ccckl-search{margin-top:24px;display:flex;max-width:36rem;gap:8px;}
.ccckl-search__input{width:100%;border:1px solid rgba(28,35,64,.4);
  padding:8px 12px;font-size:15px;color:var(--c-fg);border-radius:0;background:#fff;font-family:inherit;}
.ccckl-search__input::placeholder{color:var(--c-muted);}
.ccckl-search__btn{flex-shrink:0;background:var(--c-civic);color:#fff;padding:8px 20px;font-size:15px;
  font-weight:600;border:0;border-radius:0;cursor:pointer;}
.ccckl-search__btn:hover{background:var(--c-civic-dark);}
.ccckl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ===== filter chips ===== */
.ccckl-filter{padding-block:20px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ccckl-filter__label{font-family:var(--f-mono);font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.16em;color:var(--c-muted);margin-right:4px;}
.ccckl-chip{display:inline-flex;align-items:center;border:1px solid var(--c-line);border-radius:9999px;
  padding:2px 10px;font-size:13px;font-weight:500;line-height:20px;cursor:pointer;background:#fff;color:var(--c-fg);}
.ccckl-chip:hover{border-color:var(--c-fg);}
/* Qualified with .ccckl a, otherwise `.ccckl a{color:inherit}` above wins on
   specificity and the label renders navy on navy — invisible. */
.ccckl a.ccckl-chip--all-active{background:var(--c-fg);color:#fff;border-color:var(--c-fg);}

/* ===== result count ===== */
.ccckl-count{padding-bottom:16px;font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.16em;color:var(--c-muted);margin:0;}

/* ===== card grid ===== */
.ccckl-grid{list-style:none;margin:0;padding:0;padding-bottom:32px;display:grid;gap:16px;grid-template-columns:1fr;}
@media (min-width:640px){.ccckl-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.ccckl-grid{grid-template-columns:repeat(3,1fr);}}
.ccckl-grid>li{height:100%;}
.ccckl-grid>li[hidden]{display:none;}

/* ===== card ===== */
.ccckl-card{display:flex;height:100%;flex-direction:column;border:1px solid var(--c-line);padding:20px;border-radius:0;background:#fff;}
.ccckl-card:hover{border-color:var(--c-accent);}
.ccckl-card__head{display:flex;align-items:flex-start;gap:12px;}
.ccckl-card__icon{width:40px;height:40px;flex-shrink:0;border-radius:4px;border:1px solid var(--c-line);object-fit:cover;}
.ccckl-card__hgroup{min-width:0;}
.ccckl-card__title{font-size:1.125rem;font-weight:700;line-height:1.375;letter-spacing:-.02em;margin:0;}
.ccckl-card:hover .ccckl-card__title{color:var(--c-civic);}
.ccckl-card__org{margin-top:2px;font-size:.875rem;color:var(--c-muted);}
.ccckl-card__badgewrap{margin-top:6px;}
.ccckl-card__desc{margin-top:12px;font-size:.875rem;line-height:1.625;color:var(--c-fg80);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ccckl-card__tags{margin-top:auto;padding-top:12px;display:flex;flex-wrap:wrap;gap:6px;}

/* ===== tag pill (color-mix inline for color/border/bg) ===== */
.ccckl-pill{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid;padding:2px 10px;
  font-size:13px;font-weight:500;line-height:20px;}

/* ===== status badge (card, inline red) ===== */
.ccckl-statusbadge{display:inline-flex;align-items:center;border:1px solid;padding:2px 8px;font-family:var(--f-mono);
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;border-radius:0;
  color:var(--c-inactive-fg);border-color:var(--c-inactive-border);background:var(--c-inactive-bg);}

/* ===== empty state ===== */
.ccckl-empty{padding-block:64px;text-align:center;}
.ccckl-empty__h{font-size:1.125rem;font-weight:600;margin:0;}
.ccckl-empty__p{margin-top:8px;color:var(--c-muted);}
.ccckl-empty__p a{color:var(--c-civic);text-decoration:underline;text-underline-offset:2px;}
.ccckl-js-empty{padding-block:48px;text-align:center;color:var(--c-muted);}

/* ===== DETAIL ===== */
.ccckl-topbar{padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.ccckl-back{font-size:.875rem;font-weight:500;color:var(--c-civic);}
.ccckl-back:hover{text-decoration:underline;text-underline-offset:2px;}
.ccckl-topbar__right{display:flex;align-items:center;gap:12px;}

.ccckl-header{margin-top:24px;padding-bottom:32px;}
.ccckl-header__row{display:flex;align-items:flex-start;gap:16px;}
.ccckl-header__icon{margin-top:4px;width:56px;height:56px;flex-shrink:0;border-radius:6px;border:1px solid var(--c-line);object-fit:cover;}
.ccckl-detail-h1{font-size:1.875rem;font-weight:700;letter-spacing:-.02em;text-wrap:balance;margin:0;}
@media (min-width:640px){.ccckl-detail-h1{font-size:2.25rem;}}
.ccckl-org-line{margin-top:8px;font-size:1.125rem;color:var(--c-muted);}
.ccckl-org-line a:hover{text-decoration:underline;text-underline-offset:2px;}
.ccckl-tags{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.ccckl-provenance{margin-top:16px;font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--c-muted);}

/* status banner (full-bleed) */
.ccckl-banner{border-top:1px solid var(--c-inactive-border);border-bottom:1px solid var(--c-inactive-border);background:var(--c-inactive-bg);}
.ccckl-banner__inner{padding-block:16px;}
.ccckl-banner__label{font-family:var(--f-mono);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--c-inactive-fg);margin:0;}
.ccckl-banner__note{margin-top:4px;font-size:15px;font-weight:500;color:var(--c-inactive-fg);}

/* two-column body */
.ccckl-body{padding-top:24px;padding-bottom:16px;}
.ccckl-body--grid{display:grid;gap:32px;align-items:start;}
@media (min-width:1024px){.ccckl-body--grid{grid-template-columns:1fr 320px;}}
.ccckl-main{min-width:0;order:2;}
.ccckl-side{order:1;}
@media (min-width:1024px){.ccckl-main{order:1;}.ccckl-side{order:2;position:sticky;top:1.25rem;}}

/* InfoRow */
.ccckl-inforow{background:var(--c-wash);border:1px solid var(--c-line);border-radius:var(--radius-tile);overflow:hidden;}
.ccckl-inforow__contact{padding:16px;border-bottom:1px solid var(--c-civic25);}
@media (min-width:640px){.ccckl-inforow__contact{padding-inline:20px;}}
.ccckl-inforow__label{font-family:var(--f-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--c-civic);margin:0;}
.ccckl-contact__row{margin-top:6px;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:24px;row-gap:4px;}
.ccckl-contact__name{font-size:15px;font-weight:600;}
.ccckl-contact__title{font-weight:400;color:var(--c-muted);}
.ccckl-contact__link{font-size:15px;font-weight:500;}
.ccckl-contact__link--email{color:var(--c-civic);word-break:break-all;}
.ccckl-contact__link:hover{text-decoration:underline;text-underline-offset:2px;}
.ccckl-dl{margin:0;padding:16px;column-count:2;column-gap:24px;}
@media (min-width:640px){.ccckl-dl{padding-inline:20px;}}
.ccckl-dl__item{break-inside:avoid;border-left:2px solid var(--c-civic25);padding-left:12px;margin-bottom:16px;}
.ccckl-dl__item:last-child{margin-bottom:0;}
.ccckl-dl__item dt{font-family:var(--f-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--c-muted);margin:0;}
.ccckl-dl__item dd{margin:4px 0 0;font-size:15px;line-height:1.375;font-weight:500;}
.ccckl-dl__item dd a{color:var(--c-civic);}
.ccckl-dl__item dd a.break{word-break:break-all;}
.ccckl-dl__item dd a:hover{text-decoration:underline;text-underline-offset:2px;}

/* written sections */
.ccckl-section{margin-top:40px;}
.ccckl-section__h{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin:0;}
@media (min-width:640px){.ccckl-section__h{font-size:1.5rem;}}
.ccckl-section__body{margin-top:12px;max-width:65ch;font-size:16px;line-height:1.625;}

/* rich text */
.ccckl .rte-view p+p{margin-top:1.25rem;}
.ccckl .rte-view ul{list-style:disc;padding-left:1.5rem;margin:.5rem 0;}
.ccckl .rte-view ol{list-style:decimal;padding-left:1.5rem;margin:.5rem 0;}
.ccckl .rte-view li+li{margin-top:.25rem;}
.ccckl .rte-view li p{margin:0;}
.ccckl .rte-view mark{background:var(--c-mark);padding:0 .1em;}
.ccckl .rte-view p:empty{min-height:1.25em;}
.ccckl-rt-p{margin-top:1.5rem;}
.ccckl-rt-p:first-child{margin-top:0;}
.ccckl-rt-line{display:block;white-space:pre-wrap;tab-size:4;}

/* files */
.ccckl-files{list-style:none;margin:16px 0 0;padding:0;}
.ccckl-files>li{border:1px solid var(--c-line);background:var(--c-wash);margin-bottom:24px;}
.ccckl-files>li:last-child{margin-bottom:0;}
.ccckl-file__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:16px;row-gap:4px;padding:12px 16px;border-bottom:1px solid var(--c-line);}
.ccckl-file__name{font-weight:600;word-break:break-word;margin:0;}
.ccckl-file__meta{margin-top:2px;font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--c-muted);}
.ccckl-file__btn{flex-shrink:0;}
.ccckl-file__frame{width:100%;height:600px;background:#fff;border:0;display:block;}
.ccckl-verified{margin-top:40px;border-top:1px solid var(--c-line);padding-top:16px;font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--c-muted);}

/* verification badge */
.ccckl-vbadge{display:inline-flex;align-items:center;gap:6px;border:1px solid;padding:4px 8px;font-family:var(--f-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;}
.ccckl-vbadge__dot{width:6px;height:6px;border-radius:9999px;background:currentColor;}
.ccckl-vbadge--green{color:var(--c-green);border-color:var(--c-green);background:var(--c-green-wash);}
.ccckl-vbadge--amber{color:var(--c-amber);border-color:var(--c-amber);background:var(--c-amber-wash);}

/* Location & hours tile */
.ccckl-tile{border:1px solid var(--c-line);border-radius:var(--radius-xl);overflow:hidden;background:#fff;}
.ccckl-tile__head{background:var(--c-wash);border-bottom:1px solid var(--c-line);padding:14px 16px;}
.ccckl-tile__h{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;margin:0;}
.ccckl-tile__body{padding:16px;}
.ccckl-tile__addr{font-size:15px;line-height:1.625;white-space:pre-line;margin:0;}
.ccckl-tile__hourslabel{margin-top:16px;font-family:var(--f-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--c-muted);}
.ccckl-hours{width:100%;border-collapse:collapse;margin-top:4px;}
.ccckl-hours tr{border-top:1px solid var(--c-line);}
.ccckl-hours tr:first-child{border-top:0;}
.ccckl-hours td{padding:10px 0;vertical-align:top;font-size:14px;}
.ccckl-hours td.day{padding-right:12px;font-weight:700;width:44%;}
.ccckl-hours .closed{color:var(--c-muted);}
.ccckl-hours .range{display:block;}
.ccckl-tile__legacy{margin-top:4px;font-size:14px;line-height:1.625;white-space:pre-line;}
.ccckl-tile__note--grid{margin-top:12px;border-top:1px solid var(--c-line);padding-top:12px;font-size:13px;line-height:1.625;color:var(--c-muted);}
.ccckl-tile__note--solo{margin-top:4px;font-size:15px;line-height:1.625;}

/* ===== staff login page ===== */
.ccckl-staff-login{max-width:24rem;padding-top:32px;padding-bottom:56px;}
.ccckl-staff-login__actions{margin-top:16px;}
.ccckl-siteheader__right form{margin:0;}
