.ccc{
  font-size: var(--ccc-font, 16px);
  color: var(--ccc-text, #111);
  padding: var(--ccc-outer-pad, 0);
  border-radius: var(--ccc-radius, 14px);
}

.ccc a{ color: var(--ccc-link, #0b57d0); text-decoration: none; }
.ccc a:hover{ text-decoration: underline; }
.ccc[style*="--ccc-link-hover-underline:0"] a:hover{ text-decoration: none; }

.ccc .ccc-row{
  display: inline-flex;
  align-items: center;
  gap: var(--ccc-icon-gap, 10px);
  margin: calc(var(--ccc-item-gap, 10px) / 2) var(--ccc-item-gap, 10px) calc(var(--ccc-item-gap, 10px) / 2) 0;
}

.ccc .ccc-ico{
  color: var(--ccc-icon, #111);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ccc-icon-size, 18px);
  min-width: calc(var(--ccc-icon-size, 18px) + 4px);
}

.ccc .ccc-svg svg{ width: 1em; height: 1em; vertical-align: middle; fill: currentColor; }

/* Single contact layouts */
.ccc-layout-card{
  display: inline-block;
  background: var(--ccc-bg, #fff);
  border: var(--ccc-border, 1px solid #e5e7eb);
  border-radius: var(--ccc-radius, 14px);
  padding: var(--ccc-pad, 18px);
}
.ccc-layout-stack{ display: inline-flex; flex-direction: column; align-items: flex-start; }
.ccc-layout-inline{ display: inline-flex; flex-wrap: wrap; gap: var(--ccc-item-gap, 10px); }

/* Directory grid */
.ccc-directory{
  display: grid;
  grid-template-columns: repeat(var(--ccc-dir-cols, 3), minmax(0, 1fr));
  gap: var(--ccc-dir-gap, 18px);
  padding: var(--ccc-outer-pad, 0);
}
@media (max-width: 1024px){
  .ccc-directory{ grid-template-columns: repeat(var(--ccc-dir-cols-tablet, 2), minmax(0, 1fr)); }
}
@media (max-width: 768px){
  .ccc-directory{ grid-template-columns: repeat(var(--ccc-dir-cols-mobile, 1), minmax(0, 1fr)); }
}

.ccc-dir-item{
  background: var(--ccc-dir-item-bg, #fff);
  border: var(--ccc-dir-item-border, 1px solid #e5e7eb);
  border-radius: var(--ccc-dir-item-radius, 14px);
  padding: var(--ccc-dir-item-pad, 18px);
}

/* Divider lines within each contact card */
.ccc-dir-item .ccc-row{
  display: flex;
  margin: 0;
  padding: calc(var(--ccc-item-gap, 10px) / 1.5) 0;
  width: 100%;
}
.ccc[style*="--ccc-dividers:1"] .ccc-dir-item .ccc-row + .ccc-row{
  border-top: 1px solid rgba(0,0,0,0.08);
}

.ccc-ico-none{ display:none; }

/* Company logo image */
.ccc .ccc-logo-img{display:block;max-width:var(--ccc-logo-w,28px);max-height:var(--ccc-logo-h,28px);width:auto;height:auto;object-fit:contain;}

/* Logo position options */
.ccc .ccc-row.ccc-company.ccc-logo-above{
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.ccc-align-center .ccc-row.ccc-company.ccc-logo-above{ align-items: center; text-align: center; }
.ccc-align-right .ccc-row.ccc-company.ccc-logo-above{ align-items: flex-end; text-align: right; }

/* Logo-only mode */
.ccc .ccc-row.ccc-company.ccc-logo-only .ccc-text{ display:none; }


/* Drop Shadow Support */
.ccc-shadow-enabled .ccc-card,
.ccc-shadow-enabled .ccc-directory-item{
  box-shadow:
    var(--ccc-shadow-x,0px)
    var(--ccc-shadow-y,6px)
    var(--ccc-shadow-blur,18px)
    var(--ccc-shadow-spread,0px)
    rgba(0,0,0,var(--ccc-shadow-opacity,0.18));
}


/* Directory search/sort controls */
.ccc-wrap .ccc-controls{
  display:flex;
  flex-wrap:wrap;
  gap: 10px 12px;
  align-items:center;
  margin-bottom: 12px;
}

.ccc-wrap .ccc-control{
  display:flex;
  align-items:center;
  gap: 8px;
}

.ccc-wrap .ccc-control-label{
  font-weight: 600;
  font-size: 0.95em;
}

.ccc-wrap input.ccc-search-input{
  min-width: 260px;
  max-width: 520px;
  width: min(520px, 100%);
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 10px;
  background: #fff;
}

.ccc-wrap select.ccc-sort-select,
.ccc-wrap select.ccc-sort-direction{
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 10px;
  background: #fff;
}

@media (max-width: 768px){
  .ccc-wrap input.ccc-search-input{ min-width: 100%; }
}


/* Grouped directory */
.ccc-group{
  margin-top: 14px;
}

.ccc-group-title{
  margin: 18px 0 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 12px;
  font-size: 1.1em;
  font-weight: 700;
}

.ccc-wrap select.ccc-filter-category{
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 10px;
  background: #fff;
  min-width: 260px;
  max-width: 520px;
  width: min(520px, 100%);
}

@media (max-width: 768px){
  .ccc-wrap select.ccc-filter-category{ min-width: 100%; }
}
