/* All rules are scoped to the two ColorCraft widgets; no theme/body resets. */
.ccs {
  --ink:#12161b; --ink-soft:#1b2129; --paper:#f4f2ed; --paper-dim:#eae7df;
  --orange:#b23a2c; --orange-dark:#8a2b20; --line:#c9c4b8; --line-dark:#3a4148;
  --text-ink:#181b1f; --text-dim:#5b6570; --text-paper:#f4f2ed; --text-paper-dim:#9ba3ac;
  --ccs-container-width:1360px; --ccs-narrow-width:820px; --ccs-gutter:40px;
  --ccs-columns:3; --ccs-column-gap:44px; --ccs-group-gap:32px;
  --ccs-gallery-columns:3; --ccs-exhibitor-columns:2;
  width:100%; min-width:0; background:var(--paper); color:var(--text-ink);
  font-family:'Inter',sans-serif; font-size:16px; font-weight:400; line-height:normal;
  -webkit-font-smoothing:antialiased; text-align:left; overflow-wrap:anywhere;
}
.ccs *, .ccs *::before, .ccs *::after { box-sizing:border-box; }
.ccs h1,.ccs h2,.ccs h3,.ccs h4,.ccs h5,.ccs h6,.ccs p,.ccs ul,.ccs ol,.ccs figure { margin:0; padding:0; }
.ccs h1,.ccs h2,.ccs h3,.ccs h4,.ccs h5,.ccs h6 { color:inherit; font-family:inherit; font-size:inherit; font-weight:inherit; line-height:inherit; }
.ccs a { color:inherit; text-decoration:none; }
.ccs img { max-width:100%; display:block; border:0; border-radius:0; box-shadow:none; }
.ccs .display { font-family:'Big Shoulders Display',sans-serif; font-weight:700; text-transform:uppercase; }
.ccs .mono { font-family:'IBM Plex Mono',monospace; letter-spacing:.04em; }
.ccs .eyebrow { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--orange); }
.ccs .container { width:100%; max-width:var(--ccs-container-width); margin:0 auto; padding:0 var(--ccs-gutter); }
.ccs .container-narrow { width:100%; max-width:var(--ccs-narrow-width); margin:0 auto; padding:0 var(--ccs-gutter); }
.ccs .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; max-width:100%; font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:400; line-height:normal; letter-spacing:.08em; text-transform:uppercase; padding:14px 24px; border:1px solid var(--text-ink); border-radius:0; background:transparent; color:var(--text-ink); cursor:pointer; transition:background-color .18s,color .18s,border-color .18s; text-decoration:none; }
.ccs .btn-solid { background:var(--orange); border-color:var(--orange); color:var(--paper); }
.ccs .btn-ghost-light { border-color:var(--text-paper-dim); color:var(--text-paper); }
.ccs .btn:hover { background:var(--paper-dim); color:var(--text-ink); }
.ccs .btn-solid:hover { background:var(--orange-dark); border-color:var(--orange-dark); color:var(--paper); }
.ccs .btn-ghost-light:hover { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.ccs a:focus-visible,.ccs button:focus-visible,.ccs input:focus-visible,.ccs textarea:focus-visible { outline:2px solid var(--orange); outline-offset:4px; }
.ccs .section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:44px; flex-wrap:wrap; }
.ccs .section-head .display { font-size:38px; }
.ccs .section-head p { max-width:340px; color:var(--text-dim); font-size:15px; line-height:1.6; }
.ccs [hidden] { display:none !important; }
.ccs .ccs-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; }

/* Directory — matching the reference's 3 column desktop placement. */
.ccs.ccs-directory { padding:70px 0; }
.ccs-directory .section-head { margin-bottom:20px; }
.ccs-directory .directory-controls { display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-top:1px solid var(--line); margin-top:26px; gap:20px; flex-wrap:wrap; }
.ccs-directory .browse-note { display:flex; align-items:center; gap:10px; min-width:0; max-width:100%; }
.ccs-directory .browse-note svg { width:15px; height:15px; flex-shrink:0; stroke:var(--text-dim); fill:none; stroke-width:2; }
.ccs-directory .browse-note span { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; }
.ccs-directory .result-count { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--text-dim); text-transform:uppercase; }
.ccs-directory .directory-row { display:grid; grid-template-columns:repeat(var(--ccs-columns),minmax(0,1fr)); gap:var(--ccs-column-gap); margin-top:10px; }
.ccs-directory .directory-col { min-width:0; }
.ccs-directory .letter-group { margin-bottom:var(--ccs-group-gap); }
.ccs-directory .letter-head { display:flex; align-items:baseline; gap:10px; font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:30px; color:var(--orange); padding-bottom:8px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.ccs-directory .letter-head .count { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-dim); text-transform:uppercase; }
.ccs-directory .show-list { list-style:none; margin:0; padding:0; }
.ccs-directory .show-list li { list-style:none; border-bottom:1px solid var(--line); margin:0; padding:0; }
.ccs-directory .show-list li:last-child { border-bottom:none; }
.ccs-directory .show-list a { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; font-size:14.5px; font-weight:500; transition:color .18s,background-color .18s; }
.ccs-directory .show-list a:hover { color:var(--orange); }
.ccs-directory .show-list a .arrow { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--text-dim); }
.ccs-directory .arrow svg { width:1em; height:1em; fill:currentColor; }
.ccs-directory .directory-search { width:280px; max-width:100%; min-width:0; margin:0; padding:7px 0; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; color:var(--text-ink); font-family:'IBM Plex Mono',monospace; font-size:12px; line-height:1.5; box-shadow:none; }
.ccs-directory .directory-search::placeholder { color:var(--text-dim); opacity:1; }
.ccs-directory .directory-empty,.ccs-directory .directory-no-results { padding:20px 0; color:var(--text-dim); font-size:15px; line-height:1.6; }

/* Single show — the theme owns the site header and footer. */
.ccs-detail .section-hero { background:var(--ink); color:var(--text-paper); padding:70px 0 60px; }
.ccs-detail .breadcrumb { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--text-paper-dim); text-transform:uppercase; letter-spacing:.06em; margin-bottom:28px; }
.ccs-detail .breadcrumb .current { color:var(--orange); }
.ccs-detail .breadcrumb a:hover { color:var(--text-paper); }
.ccs-detail .hero-eyebrow { margin-bottom:14px; }
.ccs-detail .hero-h1 { font-size:56px; line-height:1; color:var(--text-paper); max-width:16ch; margin-bottom:22px; }
.ccs-detail .hero-intro { font-size:18px; line-height:1.65; color:var(--text-paper-dim); max-width:600px; margin-bottom:30px; white-space:pre-line; }
.ccs-detail .hero-buttons { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px; }
.ccs-detail .hero-buttons:empty { display:none; }
.ccs-detail .hero-meta-row { display:flex; justify-content:space-between; padding-top:26px; border-top:1px solid var(--line-dark); font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-paper-dim); text-transform:uppercase; flex-wrap:wrap; gap:10px; }
.ccs-detail .section-gallery { padding:0; }
.ccs-detail .gallery-row { display:grid; grid-template-columns:repeat(var(--ccs-gallery-columns),minmax(0,1fr)); gap:2px; }
.ccs-detail .gallery-row > .gallery-item { min-width:0; aspect-ratio:4/3; overflow:hidden; background:var(--line); }
.ccs-detail .gallery-item a { width:100%; height:100%; display:block; }
.ccs-detail .gallery-row img { width:100%; height:100%; max-width:none; object-fit:cover; }
.ccs-detail .gallery-item a:focus-visible { outline-offset:-4px; }
.ccs-detail .gallery-button-wrap { padding:32px var(--ccs-gutter); max-width:var(--ccs-container-width); margin:0 auto; }
.ccs-detail .section-plain { padding:60px 0; }
.ccs-detail .body-copy { font-size:17px; line-height:1.85; color:var(--text-ink); }
.ccs-detail .body-copy p + p,.ccs-detail .details-body p + p { margin-top:1em; }
.ccs-detail .body-copy a,.ccs-detail .details-body a { color:var(--orange); border-bottom:1px solid var(--orange); }
.ccs-detail .body-copy ul,.ccs-detail .body-copy ol,.ccs-detail .details-body ul,.ccs-detail .details-body ol { margin:1em 0; padding-left:1.4em; }
.ccs-detail .section-details { background:var(--paper-dim); padding:70px 0; }
.ccs-detail .details-row { display:flex; flex-wrap:wrap; gap:0; }
.ccs-detail .details-row > .details-col { flex:1 1 0; min-width:min(100%,240px); padding:0 24px; }
.ccs-detail .details-row > .details-col:first-child { padding-left:0; }
.ccs-detail .details-row > .details-col.bordered { border-left:1px solid var(--line); }
.ccs-detail .details-label { display:block; margin-bottom:14px; }
.ccs-detail .details-body { font-size:14.5px; line-height:1.7; color:var(--text-ink); }
.ccs-detail .details-row > .details-col > .details-body { margin:0; padding:0; border:0; min-width:0; }
.ccs-detail .details-body p { border:0; }
.ccs-detail .details-body > :first-child { margin-top:0; }
.ccs-detail .section-exhibit { padding:70px 0; }
.ccs-detail .exhibit-grid { display:flex; flex-wrap:wrap; gap:0; }
.ccs-detail .exhibit-box { width:calc(100% / var(--ccs-exhibitor-columns)); min-width:0; border:1px solid var(--line); margin:-1px 0 0 -1px; padding:24px; display:flex; gap:16px; }
.ccs-detail .exhibit-box > div { min-width:0; }
.ccs-detail .exhibit-box .num { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--orange); flex-shrink:0; }
.ccs-detail .exhibit-box h4 { font-size:15px; font-weight:600; margin-bottom:6px; }
.ccs-detail .exhibit-box p { font-size:13.5px; line-height:1.6; color:var(--text-dim); }
.ccs-detail .section-partner { padding-top:0; }
.ccs-detail .section-form { background:var(--ink); color:var(--text-paper); padding:70px 0; scroll-margin-top:30px; }
.ccs-detail .section-form .section-head .display { color:var(--text-paper); }
.ccs-detail .section-form .section-head p { color:var(--text-paper-dim); }
.ccs-detail .form-grid { display:flex; flex-wrap:wrap; gap:0; margin-top:20px; }
.ccs-detail .form-field { width:50%; min-width:0; border:1px solid var(--line-dark); margin:-1px 0 0 -1px; padding:18px 20px; }
.ccs-detail .form-field.full { width:100%; }
.ccs-detail .form-field label { display:block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:400; text-transform:uppercase; color:var(--text-paper-dim); margin-bottom:8px; }
.ccs-detail .form-field input,.ccs-detail .form-field textarea { display:block; width:100%; max-width:100%; min-width:0; height:auto; margin:0; padding:0; border:none; border-radius:0; background:transparent; color:var(--text-paper); font-family:'Inter',sans-serif; font-size:15px; box-shadow:none; }
.ccs-detail .form-field input::placeholder,.ccs-detail .form-field textarea::placeholder { color:var(--text-paper-dim); opacity:.72; }
.ccs-detail .form-field textarea { resize:vertical; min-height:70px; }
.ccs-detail .form-field:focus-within { border-color:var(--text-paper-dim); position:relative; z-index:1; }
.ccs-detail .form-submit-row { margin-top:26px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.ccs-detail .form-note { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-paper-dim); }
.ccs-detail .section-cta { background:var(--ink); color:var(--text-paper); padding:90px 0; }
.ccs-detail .cta-row { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:30px; }
.ccs-detail .cta-row h2 { font-size:52px; line-height:1; max-width:12ch; }
.ccs-detail .cta-row h2 span { color:var(--orange); }
.ccs-detail .cta-copy { min-width:0; }
.ccs-detail .cta-copy p { color:var(--text-paper-dim); font-size:15px; max-width:320px; line-height:1.6; margin-bottom:16px; }
.ccs.ccs-preview-note { padding:24px; border:1px dashed var(--line); font-size:14px; line-height:1.6; }

@media(max-width:1000px) {
  .ccs { --ccs-columns:2; }
}
@media(max-width:800px) {
  .ccs-detail .details-row { flex-direction:column; gap:24px; }
  .ccs-detail .details-row > .details-col { flex-basis:auto; padding-left:0; padding-right:0; }
  .ccs-detail .details-row > .details-col.bordered { border-left:none; border-top:1px solid var(--line); padding-top:20px; }
}
@media(max-width:768px) {
  .ccs { --ccs-gutter:22px; }
}
@media(max-width:700px) {
  .ccs { --ccs-gallery-columns:1; --ccs-exhibitor-columns:1; }
  .ccs .section-head { align-items:flex-start; }
}
@media(max-width:600px) {
  .ccs { --ccs-columns:1; }
  .ccs-detail .form-field { width:100%; }
  .ccs-directory .directory-row { row-gap:0; }
  .ccs-directory .directory-search { width:220px; }
}
@media(max-width:400px) {
  .ccs-detail .hero-h1 { font-size:48px; }
  .ccs-detail .cta-row h2 { font-size:46px; }
  .ccs .section-head .display { font-size:34px; }
}
@media(prefers-reduced-motion:reduce) {
  .ccs *, .ccs *::before, .ccs *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}
