.cbcc { max-width: 1100px; margin: 0 auto; }
.cbcc-form label { display:block; margin: 10px 0 !important; }

/* Keep submit + edit visually identical (Divi/theme can inflate spacing) */
.cbcc-fieldset { margin: 10px 0 !important; }
.cbcc-subtitle { margin-bottom: 10px !important; }
.cbcc-breadcrumbs { margin-bottom: 6px !important; }

.cbcc-form input[type="text"],
.cbcc-form input[type="email"],
.cbcc-form input[type="number"],
.cbcc-form select,
.cbcc-form textarea { width: 100%; padding: 10px; box-sizing: border-box; }

.cbcc-fieldset { border:1px solid #ddd; padding:12px; margin: 10px 0 !important; }
.cbcc-inline { display:inline-flex; gap:8px; align-items:center; margin-right:12px; }
.cbcc-checkbox { display:flex; gap:10px; align-items:flex-start; }

.cbcc-btn { display:inline-block; padding: 10px 14px; border:1px solid #111; background:#fff; cursor:pointer; text-decoration:none; }
.cbcc-btn-small { padding: 6px 10px; font-size: 13px; }

.cbcc-note { opacity: 0.8; }
.cbcc-single-meta { margin:16px 0 8px; }
.cbcc-contact { margin:18px 0 28px; }

.cbcc-notice { padding:12px 14px; border:1px solid #ddd; margin: 12px 0; }
.cbcc-notice-success { border-color: #2d8a3b; }
.cbcc-notice-info { border-color: #2b6cb0; }

.cbcc-filters { display:flex; flex-wrap:wrap; gap:10px; margin: 14px 0 18px; }
.cbcc-filters input, .cbcc-filters select { padding:10px; }

.cbcc-grid { display:grid !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important; gap:18px !important; align-items: stretch; }
@media (max-width: 900px){ .cbcc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px){ .cbcc-grid { grid-template-columns: 1fr; } }

.cbcc-card { border:1px solid #eee; overflow:hidden; background:#fff; }
.cbcc-listing-card{ position:relative; }
.cbcc-listing-card .cbcc-card-select{ position:static; margin:10px 10px 0 10px; display:inline-flex; }
.cbcc-listing-card .cbcc-card-link{ display:block; }

.cbcc-card-link { color: inherit; text-decoration:none; display:block; }
.cbcc-card-img { width:100%; height: 240px; object-fit: cover; display:block; background:#f4f4f4; }
.cbcc-card-img--empty { height:240px; }

.cbcc-card-body { padding:12px; }
.cbcc-card-title { margin: 10px 0 6px; font-size: 16px; }
.cbcc-card-meta { opacity: 0.8; font-size: 13px; margin: 4px 0; }
.cbcc-card-price { margin-top:10px; font-weight:600; }

.cbcc-badge { display:inline-block; padding: 4px 8px; font-size: 12px; border:1px solid #111; }
.cbcc-badge-pending { opacity:0.8; }

.cbcc-card-actions { display:flex; gap:10px; padding: 10px 12px 12px; border-top:1px solid #eee; }
.cbcc-inline-form { display:inline; margin:0; }

/* Status badges */
.cbcc-badge-sold { }
.cbcc-badge-expired { }

/* My listings tabs */
.cbcc-tabs { display:flex; gap:8px; flex-wrap:wrap; margin: 10px 0 16px; }
.cbcc-tab { display:inline-block; padding:6px 10px; border-radius:8px; border:1px solid rgba(0,0,0,.12); text-decoration:none; }
.cbcc-tab-active { font-weight:600; }

/* --- CBCC submit form hero/card styling --- */
.cbcc-hero {
  position: relative;
  padding: 34px 16px;
  border-radius: 18px;
  overflow: hidden;
  background: #000;
}
.cbcc-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--cbcc-hero-bg);
  background-size: cover;
  background-position: center;
  filter: blur(2px);
  transform: scale(1.04);
  opacity: .9;
}
.cbcc-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.65));
}
.cbcc-hero > * {
  position: relative;
  z-index: 1;
}

/*
  IMPORTANT:
  
  We use .cbcc-card both for the big “panel” inside the hero AND for listing cards inside grids.
  The panel needs max-width + padding, but listing cards must stay grid-native.
  So: scope the panel styling to .cbcc-hero > .cbcc-card, and explicitly include .cbcc-single-card.
*/
.cbcc-hero > .cbcc-card,
.cbcc-single-card {
  max-width: 820px;
  margin: 0 auto;
  background: rgba(255,255,255,.95);
  border-radius: 18px;
  padding: 22px 18px;
  box-shadow: 0 12px 28px rgba(0,0,0,.25);
}

/* Listing cards: ensure they always behave consistently in a grid */
.cbcc-grid > .cbcc-listing-card {
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  border-radius: 18px;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
}

.cbcc-card h2 {
  margin-top: 0;
  margin-bottom: 6px;
}
.cbcc-subtitle {
  margin: 0 0 16px;
  opacity: .85;
}

.cbcc-form label {
  display:block;
  margin: 12px 0;
  font-weight: 600;
}
.cbcc-form input[type="text"],
.cbcc-form input[type="number"],
.cbcc-form select {
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.18);
  background: #fff;
}
.cbcc-form input[type="text"]:focus,
.cbcc-form input[type="number"]:focus,
.cbcc-form select:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0,0,0,.08);
}

.cbcc-form input[type="file"] {
  margin-top: 8px;
}

.cbcc-help {
  margin: 6px 0 12px;
  opacity: .8;
}

.cbcc-photos h3 {
  margin: 18px 0 6px;
}

.cbcc-req {
  color: #b00020;
  font-weight: 700;
  margin-left: 6px;
}

.cbcc-btn {
  display:inline-block;
  padding: 12px 16px;
  border-radius: 14px;
  border: none;
  cursor: pointer;
  text-decoration:none;
  font-weight: 700;
}

.cbcc-btn-small { padding: 10px 14px; border-radius: 12px; font-size: 14px; }
.cbcc-btn-danger { background: rgba(180, 20, 20, .12); border: 1px solid rgba(180, 20, 20, .35); }

/* Photo manager */
.cbcc-photo-manager { margin-top: 12px; }
.cbcc-photo-manager h3 { margin: 14px 0 10px; }
.cbcc-photo-manager .cbcc-form label { margin: 8px 0; }
.cbcc-photo-manager .cbcc-form small { display:block; margin-top: 4px; }
.cbcc-photo-row { display:flex; gap: 16px; align-items:flex-start; flex-wrap:wrap; margin: 10px 0 18px; }
.cbcc-photo-thumb img { width: 220px; height: 220px; object-fit: cover; border-radius: 14px; box-shadow: 0 8px 18px rgba(0,0,0,.12); display:block; }
.cbcc-photo-missing { width: 220px; height: 220px; border-radius: 14px; display:flex; align-items:center; justify-content:center; background: rgba(0,0,0,.06); font-weight: 800; opacity: .7; }
.cbcc-photo-actions { display:flex; flex-direction:column; gap:10px; }
.cbcc-gallery-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 10px 0 18px; }
.cbcc-gallery-item { background: rgba(255,255,255,.7); border: 1px solid rgba(0,0,0,.08); border-radius: 14px; padding: 10px; display:flex; flex-direction:column; gap: 10px; }
.cbcc-gallery-item img { width: 100%; height: 130px; object-fit: cover; border-radius: 12px; display:block; }

.cbcc-gate-inner {
  text-align:center;
  padding: 10px 0;
}

/* --- CBCC single listing styling --- */
.cbcc-single-wrap { max-width: 980px; margin: 0 auto; }
.cbcc-single-card { background: rgba(255,255,255,.96); }
.cbcc-single-images { margin: 14px 0 16px; }
.cbcc-single-featured-wrap { border-radius: 18px; overflow: hidden; box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.cbcc-single-featured { width: 100%; height: auto; display:block; }
.cbcc-single-gallery { margin-top: 12px; }
.cbcc-single-gallery-title { font-weight: 700; margin: 0 0 8px; }
.cbcc-single-thumbs { display:flex; gap:10px; flex-wrap:wrap; }
.cbcc-single-thumb-link { display:inline-block; border-radius: 12px; overflow:hidden; box-shadow: 0 6px 14px rgba(0,0,0,.12); }
.cbcc-single-thumb { width: 92px; height: 92px; object-fit: cover; display:block; }

.cbcc-single-meta { margin: 10px 0 16px; }
.cbcc-single-meta-row { display:flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.cbcc-single-meta-row:last-child { border-bottom: none; }
.cbcc-single-k { opacity: .75; font-weight: 700; }
.cbcc-single-v { font-weight: 700; }

.cbcc-contact h3 { margin-top: 0; }

/* Featured image sizing on single */
.cbcc-single-featured-wrap { max-width: 860px; margin: 0 auto; }
.cbcc-single-featured { max-height: 520px; object-fit: cover; }

/* Lightweight lightbox */
.cbcc-lightbox { position: fixed; inset: 0; display: none; z-index: 99999; }
.cbcc-lightbox.is-open { display: block; }
.cbcc-lightbox-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.75); }
.cbcc-lightbox-inner { position: relative; max-width: min(1100px, 92vw); max-height: 86vh; margin: 7vh auto 0; background: rgba(255,255,255,.06); border-radius: 18px; overflow: hidden; box-shadow: 0 18px 44px rgba(0,0,0,.45); }
.cbcc-lightbox-img { width: 100%; height: auto; display:block; max-height: 86vh; object-fit: contain; background: #000; }
.cbcc-lightbox-close { position:absolute; top: 8px; right: 10px; width: 40px; height: 40px; border-radius: 999px; border: none; font-size: 26px; line-height: 40px; cursor: pointer; background: rgba(0,0,0,.45); color: #fff; }
.cbcc-single-thumb-link { cursor: zoom-in; }
.cbcc-single-featured-link { cursor: zoom-in; display:block; }

/* Breadcrumbs */
.cbcc-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 14px;
  margin: 6px auto 14px;
  max-width: 980px;
  opacity: .9;
}
.cbcc-breadcrumbs a { text-decoration: none; font-weight: 600; }
.cbcc-breadcrumbs span { opacity: .6; }

/* Photo bulk select */
.cbcc-photo-bulk { margin: 8px 0 0; }
.cbcc-bulkbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin: 10px 0 12px; }
.cbcc-gallery-item { position: relative; }
.cbcc-select { position:absolute; top:8px; left:8px; background: rgba(255,255,255,.92); border:1px solid rgba(0,0,0,.08); border-radius: 999px; padding: 4px 8px; font-size: 12px; display:flex; align-items:center; gap:6px; cursor:pointer; }
.cbcc-select input { margin:0; }
.cbcc-main-pill { background: rgba(0,0,0,.55); color:#fff; padding: 2px 6px; border-radius: 999px; font-weight: 800; font-size: 11px; line-height: 1.2; }
.cbcc-gallery-item--main .cbcc-help { text-align:center; }

.cbcc-photo-count { margin-left: 10px; font-weight: 700; opacity: .8; }
.cbcc-photo-block { margin: 12px 0 14px; }
.cbcc-photo-title { font-weight: 800; margin: 0 0 8px; }
.cbcc-photo-grid { display:flex; align-items:center; gap: 10px; flex-wrap:wrap; }
.cbcc-photo-grid-many { align-items: flex-start; }
.cbcc-photo-item { display:flex; flex-direction:column; gap:8px; }
.cbcc-photo-thumb { width: 180px; height: 180px; object-fit: cover; border-radius: 14px; box-shadow: 0 8px 18px rgba(0,0,0,.12); }

/* Bulk actions */
.cbcc-bulk-bar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin: 10px 0 16px; }
.cbcc-bulk-bar select { padding: 10px 12px; border-radius: 12px; border:1px solid rgba(0,0,0,.18); background:#fff; }
.cbcc-bulk-hint { opacity:.75; font-weight: 600; }
.cbcc-card-select { position:absolute; top: 12px; right: 12px; display:flex; gap:6px; align-items:center; background: rgba(255,255,255,.9); border: 1px solid rgba(0,0,0,.12); padding: 6px 10px; border-radius: 999px; font-weight: 700; }
.cbcc-card-item { position: relative; }
.cbcc-card-select span { opacity:.75; font-size: 12px; }


/* Photo manager: highlight */
.cbcc-gallery-item--main{outline:2px solid rgba(0,0,0,.18);}
.cbcc-all-photos .cbcc-inline-form{width:100%;}
.cbcc-all-photos .cbcc-inline-form .cbcc-btn{width:100%;}

/* Photo manager spacing tidy (high specificity to beat page builder styles) */
.cbcc-photo-manager h3 { margin: 10px 0 4px !important; }
.cbcc-photo-manager .cbcc-form { margin: 0 !important; }
.cbcc-photo-manager .cbcc-form label { margin: 4px 0 !important; }
.cbcc-photo-manager .cbcc-form small { display:block; margin-top: 4px; }
.cbcc-photo-manager .cbcc-gallery-grid { margin: 8px 0 6px !important; }

.cbcc-empty-cta {
  font-weight: 600;
  text-decoration: underline;
}

