/* ============================================================
   Chamber-in-a-Box - Public CSS v1.1.5
   ============================================================ */
:root {
    --cib-blue:     #003366;
    --cib-sky:      #00ADEF;
    --cib-green:    #66CC33;
    --cib-gray:     #666666;
    --cib-yellow:   #FFCC33;
    --cib-dark:     #333333;
    --cib-white:    #ffffff;
    --cib-navy:     #002244;
    --cib-bg:       #f5f7fa;
    --cib-border:   #e0e6ed;
    --cib-radius:   10px;
    --cib-shadow:   0 2px 12px rgba(0,51,102,0.09);
    --cib-shadow-hover: 0 6px 24px rgba(0,51,102,0.16);
    --cib-transition: 0.2s ease;
}

/* ---- Wrap ---- */
.cib-directory-wrap {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--cib-dark);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 8px;
}

/* ---- Filter Bar ---- */
.cib-filter-bar { margin-bottom: 16px; }
.cib-filter-inner {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.cib-search-group {
    display: flex;
    flex: 1;
    min-width: 200px;
    position: relative;
}
.cib-search-input {
    width: 100%;
    padding: 10px 44px 10px 14px;
    border: 2px solid var(--cib-border);
    border-radius: var(--cib-radius);
    font-size: 14px;
    font-family: inherit;
    outline: none;
    transition: border-color var(--cib-transition);
    background: var(--cib-white);
}
.cib-search-input:focus { border-color: var(--cib-sky); }
.cib-search-btn {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--cib-gray);
    padding: 4px;
    display: flex;
    align-items: center;
}
.cib-cat-select {
    padding: 10px 12px;
    border: 2px solid var(--cib-border);
    border-radius: var(--cib-radius);
    font-size: 14px;
    font-family: inherit;
    outline: none;
    cursor: pointer;
    background: var(--cib-white);
    min-width: 180px;
}
.cib-cat-select:focus { border-color: var(--cib-sky); }
.cib-clear-filters {
    font-size: 13px;
    color: var(--cib-gray);
    text-decoration: none;
    background: #f0f0f0;
    border-radius: 6px;
    padding: 6px 10px;
    white-space: nowrap;
}
.cib-clear-filters:hover { background: #e0e0e0; }

/* ---- Alpha Bar ---- */
.cib-alpha-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    margin-bottom: 14px;
}
.cib-alpha-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: var(--cib-white);
    border: 1.5px solid var(--cib-border);
    color: var(--cib-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: all var(--cib-transition);
}
.cib-alpha-pill:hover,
.cib-alpha-pill.active {
    background: var(--cib-blue);
    border-color: var(--cib-blue);
    color: var(--cib-white);
}

/* ---- Misc ---- */
.cib-update-link { font-size: 13px; color: var(--cib-gray); margin-bottom: 12px; }
.cib-update-link a { color: var(--cib-sky); }
.cib-result-count { font-size: 13px; color: var(--cib-gray); margin-bottom: 14px; }

/* ---- Featured Section ---- */
.cib-featured-section { margin-bottom: 28px; }
.cib-featured-heading {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cib-blue);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.cib-featured-heading::before,
.cib-featured-heading::after { content: ''; flex: 1; height: 1px; background: var(--cib-border); }
.cib-section-divider { border: none; border-top: 2px solid var(--cib-border); margin: 20px 0 28px; }

/* ---- Card Grid & Column Variants ---- */
.cib-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 28px;
}
.cib-cols-1 { grid-template-columns: 1fr; }
.cib-cols-2 { grid-template-columns: repeat(2, 1fr); }
.cib-cols-3 { grid-template-columns: repeat(3, 1fr); }
.cib-cols-4 { grid-template-columns: repeat(4, 1fr); }
.cib-featured-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

@media (max-width: 1000px) {
    .cib-cols-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
    .cib-cols-3, .cib-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 580px) {
    .cib-card-grid, .cib-cols-2, .cib-cols-3, .cib-cols-4 { grid-template-columns: 1fr; }
}

/* ---- Card ---- */
.cib-card {
    background: var(--cib-white);
    border: 1.5px solid var(--cib-border);
    border-radius: var(--cib-radius);
    box-shadow: var(--cib-shadow);
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow var(--cib-transition), transform var(--cib-transition);
}
.cib-card:hover {
    box-shadow: var(--cib-shadow-hover);
    transform: translateY(-3px);
}
.cib-card-featured { border-color: var(--cib-sky); border-width: 2px; }

/* Admin edit link on card */
.cib-admin-edit-link {
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(0,51,102,0.85);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 7px;
    border-radius: 4px;
    text-decoration: none;
    z-index: 10;
    opacity: 0;
    transition: opacity var(--cib-transition);
}
.cib-card:hover .cib-admin-edit-link { opacity: 1; }

/* Tier badge */
.cib-tier-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 7px;
    border-radius: 4px;
    z-index: 2;
}
.cib-tier-badge-lg {
    position: static;
    font-size: 12px;
    padding: 4px 12px;
    display: inline-block;
    margin-bottom: 8px;
}
.cib-tier-visionary_partner { background: var(--cib-blue);   color: var(--cib-white); }
.cib-tier-executive_partner  { background: #3a3a3a;            color: var(--cib-white); }
.cib-tier-business_builder   { background: var(--cib-yellow); color: var(--cib-dark); }
.cib-tier-community_partner  { background: var(--cib-green);  color: var(--cib-white); }

/* Logo */
.cib-card-logo-link { display: block; text-decoration: none; }
.cib-card-logo {
    height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: #f8fafc;
    border-bottom: 1px solid var(--cib-border);
}
.cib-card-logo img {
    max-width: 100%;
    max-height: 74px;
    object-fit: contain;
    display: block;
}
.cib-logo-placeholder {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--cib-blue);
    color: var(--cib-white);
    font-size: 26px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Card body */
.cib-card-body {
    padding: 12px 14px 14px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 5px;
    position: relative;
    z-index: 1;
}
.cib-card-name { font-size: 14px; font-weight: 700; margin: 0; line-height: 1.3; }
.cib-card-name a { color: var(--cib-blue); text-decoration: none; }
.cib-card-name a:hover { color: var(--cib-sky); }
.cib-card-cats { display: flex; flex-wrap: wrap; gap: 4px; }
.cib-cat-tag {
    font-size: 10px;
    background: #e8f4fc;
    color: var(--cib-blue);
    border-radius: 4px;
    padding: 2px 6px;
    font-weight: 700;
    display: inline-block;
}
a.cib-cat-tag:hover { background: var(--cib-sky); color: var(--cib-white); }
.cib-card-phone, .cib-card-web { font-size: 12px; margin: 0; color: var(--cib-gray); }
.cib-card-phone a, .cib-card-web a { color: var(--cib-gray); text-decoration: none; }
.cib-card-phone a:hover, .cib-card-web a:hover { color: var(--cib-sky); }
.cib-card-view-btn {
    display: inline-block;
    margin-top: auto;
    padding-top: 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--cib-sky);
    text-decoration: none;
}
.cib-card-view-btn:hover { color: var(--cib-blue); }
.cib-card-link-overlay { position: absolute; inset: 0; z-index: 0; }

/* ---- No results ---- */
.cib-no-results { text-align: center; padding: 48px 0; color: var(--cib-gray); }
.cib-no-results p { font-size: 16px; margin-bottom: 16px; }

/* ---- Pagination ---- */
.cib-pagination { display: flex; gap: 5px; justify-content: center; flex-wrap: wrap; margin-top: 28px; padding-bottom: 28px; }
.cib-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1.5px solid var(--cib-border);
    border-radius: 6px;
    background: var(--cib-white);
    color: var(--cib-blue);
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    transition: all var(--cib-transition);
}
.cib-page-btn:hover, .cib-page-btn.current { background: var(--cib-blue); border-color: var(--cib-blue); color: var(--cib-white); }

/* ---- Buttons ---- */
.cib-btn {
    display: inline-block;
    padding: 10px 20px;
    background: var(--cib-blue);
    color: var(--cib-white);
    border-radius: var(--cib-radius);
    font-weight: 700;
    text-decoration: none;
    font-size: 14px;
    transition: background var(--cib-transition);
    text-align: center;
}
.cib-btn:hover { background: var(--cib-sky); color: var(--cib-white); }
.cib-btn-block { display: block; width: 100%; box-sizing: border-box; margin-top: 14px; }

/* ==============================================================
   MEMBER PROFILE PAGE - Single column layout
   ============================================================== */
.cib-profile-wrap {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    max-width: 860px;
    margin: 0 auto;
    padding: 0 16px 48px;
    color: var(--cib-dark);
}

/* Nav bar */
.cib-profile-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 8px;
}
.cib-profile-back {
    color: var(--cib-sky);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}
.cib-profile-back:hover { color: var(--cib-blue); }
.cib-profile-admin-edit {
    font-size: 12px;
    font-weight: 700;
    background: var(--cib-blue);
    color: var(--cib-white);
    padding: 5px 12px;
    border-radius: 6px;
    text-decoration: none;
}
.cib-profile-admin-edit:hover { background: var(--cib-sky); color: #fff; }

/* Master info card */
.cib-profile-card {
    background: var(--cib-white);
    border: 1.5px solid var(--cib-border);
    border-left: 4px solid var(--cib-blue);
    border-radius: var(--cib-radius);
    box-shadow: var(--cib-shadow);
    padding: 28px;
    margin-bottom: 20px;
}

/* Top row: logo + identity */
.cib-profile-card-top {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--cib-border);
}
.cib-profile-logo {
    flex-shrink: 0;
    width: 140px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    border-radius: 8px;
    border: 1px solid var(--cib-border);
    padding: 12px;
}
.cib-profile-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cib-logo-placeholder-lg { width: 72px; height: 72px; font-size: 30px; }

.cib-profile-identity { flex: 1; }
.cib-profile-biz-name {
    font-size: 24px;
    font-weight: 800;
    color: var(--cib-blue);
    margin: 0 0 8px;
    line-height: 1.2;
}
.cib-profile-cats { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }

/* Info grid */
.cib-profile-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    margin-bottom: 20px;
}
@media (max-width: 600px) {
    .cib-profile-info-grid { grid-template-columns: 1fr; }
}
.cib-info-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 0;
    border-bottom: 1px solid var(--cib-border);
    font-size: 13px;
}
.cib-info-item:nth-child(odd) { padding-right: 24px; }
.cib-info-item:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--cib-border); }
.cib-info-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cib-gray);
    font-weight: 800;
}
.cib-info-value { color: var(--cib-dark); font-weight: 500; }
.cib-info-value a, a.cib-info-value { color: var(--cib-sky); text-decoration: none; }
.cib-info-value a:hover, a.cib-info-value:hover { text-decoration: underline; }

/* CTA row */
.cib-profile-cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding-top: 16px;
}
.cib-btn-cta {
    padding: 9px 20px;
    background: var(--cib-blue);
    color: var(--cib-white);
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
    font-size: 13px;
    transition: background var(--cib-transition);
}
.cib-btn-cta:hover { background: var(--cib-sky); color: #fff; }

/* Social links */
.cib-social-icon {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    background: #e8f4fc;
    color: var(--cib-blue);
    transition: all var(--cib-transition);
}
.cib-social-icon:hover { background: var(--cib-sky); color: var(--cib-white); }

/* Bio */
.cib-profile-bio {
    background: var(--cib-white);
    border: 1.5px solid var(--cib-border);
    border-radius: var(--cib-radius);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: var(--cib-shadow);
}
.cib-profile-bio h2 {
    font-size: 16px;
    font-weight: 800;
    color: var(--cib-blue);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--cib-border);
}
.cib-bio-content p { font-size: 14px; line-height: 1.75; color: #444; margin: 0 0 12px; }
.cib-bio-content p:last-child { margin-bottom: 0; }

/* Map */
.cib-profile-map {
    border-radius: var(--cib-radius);
    overflow: hidden;
    border: 1.5px solid var(--cib-border);
    box-shadow: var(--cib-shadow);
    margin-bottom: 20px;
}

/* Chamber badge */
.cib-chamber-badge {
    background: var(--cib-blue);
    border-radius: var(--cib-radius);
    padding: 16px;
    text-align: center;
    margin-bottom: 20px;
}
.cib-chamber-badge-inner { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cib-chamber-badge-icon { font-size: 20px; color: var(--cib-yellow); }
.cib-chamber-badge-text { font-size: 13px; font-weight: 800; color: var(--cib-white); text-transform: uppercase; letter-spacing: 0.06em; }
.cib-chamber-badge-sub { font-size: 11px; color: rgba(255,255,255,0.75); }

/* Responsive */
@media (max-width: 600px) {
    .cib-profile-card-top { flex-direction: column; }
    .cib-profile-logo { width: 100%; height: auto; }
    .cib-profile-biz-name { font-size: 20px; }
}

/* Tier badge (shared) */
/* Tier badge — absolute version removed from card, now inline in card body */
.cib-tier-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 7px;
    border-radius: 4px;
}
.cib-card-tier-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 8px;
    border-radius: 4px;
    margin-bottom: 4px;
}
.cib-tier-badge-lg { font-size: 11px; padding: 4px 10px; margin-bottom: 6px; }

/* "Hiring" badge — directory card and profile page */
.cib-card-hiring-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 8px;
    border-radius: 4px;
    margin-bottom: 4px;
    margin-left: 4px;
    background: var(--cib-green, #2e7d32);
    color: #fff;
}
.cib-card-hiring-badge-lg { font-size: 11px; padding: 4px 10px; margin-bottom: 6px; }
.cib-card-deal-badge { background: var(--cib-blue); }
.cib-profile-deals { margin-top: 24px; }
.cib-profile-deal-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 700px) { .cib-profile-deal-grid { grid-template-columns: 1fr; } }

/* [cib_jobs] listing */
.cib-jobs-wrap { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
.cib-job-card { border: 1px solid #e0e6ed; border-radius: 8px; padding: 16px 20px; background: #fff; }
.cib-job-title { margin: 0 0 4px; font-size: 17px; }
.cib-job-meta { font-size: 13px; color: #666; margin-bottom: 10px; }
.cib-job-description { font-size: 13px; color: #333; margin-bottom: 12px; }
.cib-job-contact { font-size: 12px; color: #666; margin: 0 0 10px; }
.cib-job-apply-btn { display: inline-block; }

/* [cib_sponsors] logo wall */
.cib-sponsor-wall-title { font-size: 18px; margin: 0 0 16px; text-align: center; }
.cib-sponsor-wall-tiles {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 20px;
}
.cib-sponsor-wall-row .cib-sponsor-wall-tiles { gap: 14px; }
.cib-sponsor-wall-tile {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
}
.cib-sponsor-wall-tile img {
    max-width: 160px;
    max-height: 80px;
    object-fit: contain;
    display: block;
}
.cib-sponsor-wall-row .cib-sponsor-wall-tile img { max-width: 110px; max-height: 50px; }
.cib-sponsor-wall-tile.cib-sponsor-size-1 img { max-width: 200px; max-height: 100px; }
.cib-sponsor-wall-tile.cib-sponsor-size-2 img { max-width: 150px; max-height: 75px; }
.cib-sponsor-wall-tile.cib-sponsor-size-3 img { max-width: 110px; max-height: 55px; }
.cib-sponsor-wall-row .cib-sponsor-wall-tile.cib-sponsor-size-1 img { max-width: 140px; max-height: 60px; }
.cib-sponsor-wall-row .cib-sponsor-wall-tile.cib-sponsor-size-2 img { max-width: 110px; max-height: 48px; }
.cib-sponsor-wall-row .cib-sponsor-wall-tile.cib-sponsor-size-3 img { max-width: 90px; max-height: 40px; }

/* Milestone badges on the individual profile page */
.cib-profile-milestones {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 6px 0;
}

/* Milestone anniversary ribbon on directory cards */
.cib-card-milestone-ribbon {
    position: absolute;
    top: 8px;
    left: 8px;
    background: var(--cib-yellow, #f4c542);
    color: var(--cib-dark, #1a1a1a);
    font-size: 10px;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 4px;
    z-index: 10;
    line-height: 1.4;
}

.cib-tier-visionary_partner { background: var(--cib-blue);   color: var(--cib-white); }
.cib-tier-executive_partner  { background: #3a3a3a;            color: var(--cib-white); }
.cib-tier-business_builder   { background: var(--cib-yellow); color: var(--cib-dark); }
.cib-tier-community_partner  { background: var(--cib-green);  color: var(--cib-white); }

/* ---- Social icons with SVG backgrounds ---- */
.cib-social-icon {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px 7px 10px;
}
.cib-social-icon::before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}
.cib-social-facebook::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003366'%3E%3Cpath d='M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z'/%3E%3C/svg%3E"); }
.cib-social-instagram::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003366'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z'/%3E%3C/svg%3E"); }
.cib-social-linkedin::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003366'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E"); }
.cib-social-twitter::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003366'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.747l7.73-8.835L1.254 2.25H8.08l4.259 5.63zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E"); }
.cib-social-youtube::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003366'%3E%3Cpath d='M23.495 6.205a3.007 3.007 0 00-2.088-2.088c-1.87-.501-9.396-.501-9.396-.501s-7.507-.01-9.396.501A3.007 3.007 0 00.527 6.205a31.247 31.247 0 00-.522 5.805 31.247 31.247 0 00.522 5.783 3.007 3.007 0 002.088 2.088c1.868.502 9.396.502 9.396.502s7.506 0 9.396-.502a3.007 3.007 0 002.088-2.088 31.247 31.247 0 00.5-5.783 31.247 31.247 0 00-.5-5.805zM9.609 15.601V8.408l6.264 3.602z'/%3E%3C/svg%3E"); }

/* Hover state — swap icon color to white */
.cib-social-facebook:hover::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z'/%3E%3C/svg%3E"); }
.cib-social-instagram:hover::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z'/%3E%3C/svg%3E"); }
.cib-social-linkedin:hover::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E"); }
.cib-social-twitter:hover::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.747l7.73-8.835L1.254 2.25H8.08l4.259 5.63zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E"); }
.cib-social-youtube:hover::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M23.495 6.205a3.007 3.007 0 00-2.088-2.088c-1.87-.501-9.396-.501-9.396-.501s-7.507-.01-9.396.501A3.007 3.007 0 00.527 6.205a31.247 31.247 0 00-.522 5.805 31.247 31.247 0 00.522 5.783 3.007 3.007 0 002.088 2.088c1.868.502 9.396.502 9.396.502s7.506 0 9.396-.502a3.007 3.007 0 002.088-2.088 31.247 31.247 0 00.5-5.783 31.247 31.247 0 00-.5-5.805zM9.609 15.601V8.408l6.264 3.602z'/%3E%3C/svg%3E"); }

/* Card tier badge color variants */
.cib-card-tier-badge.cib-tier-visionary_partner { background: var(--cib-blue);   color: var(--cib-white); }
.cib-card-tier-badge.cib-tier-executive_partner  { background: #3a3a3a;            color: var(--cib-white); }
.cib-card-tier-badge.cib-tier-business_builder   { background: var(--cib-yellow); color: var(--cib-dark); }
.cib-card-tier-badge.cib-tier-community_partner  { background: var(--cib-green);  color: var(--cib-white); }

/* ---- Member Self-Edit Form ---- */
.cib-edit-wrap {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    max-width: 760px;
    margin: 0 auto;
    color: var(--cib-dark);
}
.cib-edit-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--cib-blue);
    margin-bottom: 20px;
}
.cib-edit-notice {
    padding: 14px 18px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
    border: 1px solid transparent;
}
.cib-notice-success { background: #f0f8f0; border-color: #b7e1b7; color: #1a5c1a; }
.cib-notice-error   { background: #fdf0f0; border-color: #e1b7b7; color: #5c1a1a; }
.cib-notice-info    { background: #f0f6ff; border-color: #b7cfe1; color: #1a3a5c; }
.cib-edit-section {
    background: var(--cib-white);
    border: 1px solid var(--cib-border);
    border-radius: var(--cib-radius);
    padding: 20px 24px;
    margin-bottom: 20px;
}
.cib-edit-section h3 {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--cib-blue);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--cib-border);
}
.cib-edit-field {
    margin-bottom: 14px;
}
.cib-edit-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--cib-dark);
    margin-bottom: 5px;
}
.cib-edit-field input[type="text"],
.cib-edit-field input[type="url"],
.cib-edit-field textarea {
    width: 100%;
    padding: 9px 12px;
    border: 2px solid var(--cib-border);
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color .2s;
    background: #fafbfc;
}
.cib-edit-field input:focus,
.cib-edit-field textarea:focus {
    border-color: var(--cib-sky);
    outline: none;
    background: #fff;
}
.cib-edit-field textarea { resize: vertical; }
.cib-field-note {
    font-size: 12px;
    color: var(--cib-gray);
    margin: 5px 0 0;
}
.cib-edit-actions {
    text-align: center;
    padding: 8px 0 24px;
}
.cib-edit-actions .cib-btn-cta {
    font-size: 15px;
    padding: 12px 32px;
}

/* Consistent application form field input style */
.cib-edit-field .cib-field-input,
.cib-edit-field input[type="text"],
.cib-edit-field input[type="email"],
.cib-edit-field input[type="tel"],
.cib-edit-field input[type="url"],
.cib-edit-field input[type="number"],
.cib-edit-field textarea,
.cib-edit-field select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    background: #fff;
    color: #1d2327;
    box-sizing: border-box;
    line-height: 1.5;
    -webkit-appearance: none;
}
.cib-edit-field input[type="number"] {
    max-width: 120px;
    width: auto;
}
.cib-edit-field input:focus,
.cib-edit-field textarea:focus,
.cib-edit-field select:focus {
    border-color: #2271b1;
    outline: 2px solid #2271b1;
    outline-offset: 0;
}
.cib-logo-preview-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 120px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fafafa;
    padding: 4px;
    box-sizing: border-box;
    margin-bottom: 12px;
}
.cib-logo-preview-box img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* ==========================================================================
   Event detail page redesign (added 1.2.8) — informed by a Divi/TEC
   reference layout David built himself; not copying TEC's code, only the
   general visual language (two-column layout, rounded info box, pill
   calendar button), adapted to this plugin's own CiaB navy brand color.
   ========================================================================== */
.cib-event-detail-v2 { max-width: 1080px; margin: 40px auto; padding: 0 20px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--cib-dark); }
/* Robust for both <img class="cib-event-hero"> and an optimizer-rewritten
   <picture class="cib-event-hero"><img></picture> — see the identical
   pattern on .cib-deal-detail-logo above and .cib-portal-logo-img in
   class-cib-portal.php. object-fit:contain is load-bearing here (width is
   a definite 100%, not auto, so it's what resolves the width-vs-max-height
   conflict without cropping/distorting) and must be on the actual <img>;
   background/border-radius are duplicated onto the nested <img> too so the
   rounded/letterboxed appearance survives even if the class ends up on a
   non-replaced <picture> wrapper instead. margin-bottom stays on the
   outer/class-bearing selector only so it's never doubled. No
   overflow:hidden anywhere — nothing here crops. */
.cib-event-hero { margin-bottom: 24px; }
.cib-event-hero,
.cib-event-hero img { width: 100%; height: auto; max-height: 600px; object-fit: contain; background: #f6f8fb; border-radius: var(--cib-radius); display: block; }
/* Hero fallback — shown instead of .cib-event-hero when the event has no
   featured_image, so an image-less event detail page still opens with a
   deliberate branded banner rather than jumping straight to the title. */
.cib-event-hero-fallback {
	margin-bottom: 24px; border-radius: var(--cib-radius); padding: 40px 24px;
	background: linear-gradient(135deg, var(--cib-blue), var(--cib-navy));
	color: rgba(255,255,255,.9); text-align: center;
}
.cib-event-hero-fallback .cib-event-hero-fallback-icon { font-size: 34px; display: block; margin-bottom: 6px; }
.cib-event-member-price-note { display: block; font-size: 11px; font-weight: 600; color: var(--cib-sky); margin-top: 2px; }
.cib-event-past-notice { background: #fce8e8; border: 1px solid #f0b8b8; color: #a02020; font-weight: 700; text-align: center; padding: 12px 16px; border-radius: 8px; margin-bottom: 20px; }
.cib-event-cancelled-notice { background: #fdecea; border: 2px solid #c0392b; color: #7a1f1f; font-weight: 700; font-size: 15px; text-align: center; padding: 14px 18px; border-radius: 8px; margin-bottom: 20px; }
.cib-event-title { font-size: 32px; font-weight: 800; color: var(--cib-blue); line-height: 1.25; margin-bottom: 8px; }
.cib-event-attendee-line { font-size: 13px; color: #666; margin-bottom: 20px; }
.cib-event-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 36px; align-items: start; }
@media (max-width: 800px) { .cib-event-layout { grid-template-columns: 1fr; } }
.cib-event-description { font-size: 16px; line-height: 1.75; margin-bottom: 24px; }
.cib-event-sidebar { background: #f6f8fb; border: 1px solid var(--cib-border); border-radius: var(--cib-radius); padding: 22px 24px; }
.cib-event-sidebar h3 { margin: 0 0 14px; font-size: 15px; font-weight: 700; color: var(--cib-blue); text-transform: uppercase; letter-spacing: .04em; }
.cib-event-detail-row { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; margin-bottom: 12px; color: #333; }
.cib-event-detail-row .cib-event-detail-icon { flex-shrink: 0; width: 18px; text-align: center; }
.cib-btn-pill { display: inline-block; width: 100%; box-sizing: border-box; text-align: center; background: var(--cib-blue); color: #fff !important; padding: 11px 20px; border-radius: 50px; font-size: 14px; font-weight: 700; text-decoration: none !important; margin-top: 10px; }
.cib-btn-pill:hover { background: #001f3f; }

/* Add to Calendar — native <details>/<summary> disclosure, no JS needed. */
.cib-add-to-calendar { position: relative; }
.cib-add-to-calendar summary.cib-btn-pill { cursor: pointer; list-style: none; }
.cib-add-to-calendar summary.cib-btn-pill::-webkit-details-marker { display: none; }
.cib-add-to-calendar[open] summary.cib-btn-pill { background: #001f3f; }
.cib-add-to-calendar-menu { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; border: 1.5px solid var(--cib-border); border-radius: var(--cib-radius); background: #fff; box-shadow: var(--cib-shadow); padding: 8px; }
.cib-add-to-calendar-menu a { display: block; padding: 9px 12px; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--cib-blue); text-decoration: none; }
.cib-add-to-calendar-menu a:hover,
.cib-add-to-calendar-menu a:focus-visible { background: var(--cib-bg); outline: none; }
.cib-event-sponsor-thanks { background: #fafbff; border: 1px solid var(--cib-border); border-radius: 8px; padding: 14px 16px; margin-bottom: 20px; font-size: 14px; }
.cib-event-panel { border: 1px solid var(--cib-border); border-radius: var(--cib-radius); padding: 20px 22px; margin-bottom: 24px; background: #fff; }
.cib-event-panel h2 { margin-top: 0; font-size: 19px; color: var(--cib-blue); }
.cib-event-option-card { display: block; border: 1.5px solid var(--cib-border); border-radius: 8px; padding: 12px 16px; margin-bottom: 10px; cursor: pointer; transition: border-color .15s, background .15s; }
.cib-event-option-card:hover { border-color: var(--cib-blue); background: #f6f8fb; }
.cib-event-option-card.cib-option-disabled { cursor: default; opacity: .55; }
.cib-event-option-card.cib-option-disabled:hover { border-color: var(--cib-border); background: none; }
.cib-event-option-card input[type="radio"] { margin-right: 8px; }
.cib-event-option-desc { margin: 6px 0 0 26px; font-size: 13px; color: #666; }
.cib-event-nav { display: flex; justify-content: space-between; margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--cib-border); font-size: 14px; font-weight: 600; }
.cib-event-nav a { color: var(--cib-blue); text-decoration: none; }
.cib-event-nav a:hover { text-decoration: underline; }

/* Event page modern form fields + reservation panel (added 1.2.9) */
.cib-event-reserve-panel { border: 1.5px solid var(--cib-border); border-radius: var(--cib-radius); padding: 28px 30px; margin-bottom: 24px; background: #fff; box-shadow: var(--cib-shadow); }
.cib-event-reserve-panel h2 { margin: 0 0 6px; font-size: 22px; color: var(--cib-blue); }
.cib-event-reserve-panel > p.cib-event-reserve-sub { margin: 0 0 24px; font-size: 14px; color: #666; }
.cib-event-reserve-section { margin-bottom: 28px; }
.cib-event-reserve-section:last-child { margin-bottom: 0; }
.cib-event-reserve-section h3 { font-size: 15px; font-weight: 700; color: #1d2327; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--cib-border); }
.cib-event-form-group { margin-bottom: 18px; }
.cib-event-form-row { display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 18px; }
.cib-event-form-row .cib-event-form-group { flex: 1 1 220px; margin-bottom: 0; }
.cib-event-form-group label { display: block; font-size: 13px; font-weight: 700; color: #1d2327; margin-bottom: 6px; }
.cib-event-input { width: 100%; box-sizing: border-box; padding: 11px 14px; font-size: 15px; border: 1.5px solid var(--cib-border); border-radius: 7px; font-family: inherit; transition: border-color .15s, box-shadow .15s; }
.cib-event-input:focus { outline: none; border-color: var(--cib-blue); box-shadow: 0 0 0 3px rgba(0,51,102,.08); }
.cib-event-qty-input { width: 90px; }
.cib-event-option-card { display: flex; align-items: flex-start; gap: 12px; border: 1.5px solid var(--cib-border); border-radius: 8px; padding: 14px 16px; margin-bottom: 10px; cursor: pointer; transition: border-color .15s, background .15s; }
.cib-event-option-card:hover { border-color: var(--cib-blue); background: #f6f8fb; }
.cib-event-option-card.cib-option-disabled { cursor: default; opacity: .55; }
.cib-event-option-card.cib-option-disabled:hover { border-color: var(--cib-border); background: none; }
.cib-event-option-card input[type="radio"] { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; }
.cib-event-option-body { flex: 1; }
.cib-event-option-title { font-size: 15px; font-weight: 700; color: #1d2327; }
.cib-event-option-price { float: right; font-size: 15px; font-weight: 700; color: var(--cib-blue); }
.cib-event-submit-btn { display: inline-block; width: 100%; box-sizing: border-box; text-align: center; background: var(--cib-blue); color: #fff !important; padding: 15px 20px; border: none; border-radius: 8px; font-size: 16px; font-weight: 700; cursor: pointer; text-decoration: none !important; transition: background .15s; }
.cib-event-submit-btn:hover { background: #001f3f; }

/* Event reserve-panel notices (added 1.2.9) */
.cib-event-form-notice { padding: 14px 16px; border-radius: 7px; margin-bottom: 18px; font-size: 14px; }
.cib-event-form-success { background: #f0fff4; border: 1px solid #b7e1b7; color: #1e5e2e; }
.cib-event-form-error { background: #fce8e8; border: 1px solid #f5c6c6; color: #8a2c2c; }

/* Event cart: quantity steppers, sponsorship checkboxes, attendee rows (added for real checkout) */
.cib-cart-ticket-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: default; }
.cib-event-qty-stepper { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.cib-qty-btn { width: 32px; height: 32px; border: 1.5px solid var(--cib-border); border-radius: 6px; background: #fff; font-size: 18px; line-height: 1; cursor: pointer; color: var(--cib-blue); transition: background .15s; }
.cib-qty-btn:hover:not(:disabled) { background: #f6f8fb; }
.cib-qty-btn:disabled { opacity: .4; cursor: not-allowed; }
.cib-event-qty-input.cib-cart-qty { width: 56px; text-align: center; padding: 8px 4px; }
.cib-event-sponsor-toggle { cursor: pointer; }
.cib-event-sponsor-toggle input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; }
.cib-attendee-row:first-of-type { margin-top: 4px; }

/* ============================================================
   Native Events Listing — [cib_events]
   ============================================================ */
.cib-events-grid {
	display: grid;
	grid-template-columns: repeat(var(--cib-event-cols, 3), 1fr);
	gap: 24px;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
@media (max-width: 900px) { .cib-events-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .cib-events-grid { grid-template-columns: 1fr; gap: 18px; } }
/* Summary is a stack of full-width rows, not a card grid -- override the
   List card grid's column count (and its 900px/600px breakpoints, beaten
   on specificity by the extra class here) at every width. */
.cib-events-grid.cib-events-view-summary { grid-template-columns: 1fr; gap: 0; }

/* [cib_upcoming_events] -- homepage/sidebar preview widget */
.cib-upcoming-events-footer { text-align: center; margin: 24px 0 0; }

.cib-event-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1.5px solid var(--cib-border);
	border-radius: var(--cib-radius);
	overflow: hidden;
	box-shadow: var(--cib-shadow);
	transition: box-shadow var(--cib-transition), transform var(--cib-transition);
}
.cib-event-card:hover { box-shadow: var(--cib-shadow-hover); transform: translateY(-2px); }

.cib-event-card-media { position: relative; aspect-ratio: 16 / 9; background: #fff; overflow: hidden; }
.cib-event-card-media-link { display:block; width:100%; height:100%; color:inherit; text-decoration:none; }
.cib-event-card-media-link:focus-visible { outline:3px solid var(--cib-sky); outline-offset:-3px; }
/* object-fit: contain (not cover) -- the box itself stays a fixed 16:9
   size regardless of the source image's own dimensions, so every card in
   the grid stays the same size and the grid stays symmetrical, but the
   full image is always shown rather than cropped. An image that doesn't
   match the 16:9 box is letterboxed against the box's own white
   background (matching .cib-event-card's background) instead of being
   cut off. */
.cib-event-card-media img { width: 100%; height: 100%; object-fit: contain; display: block; }
/* Image fallback — a deliberate placeholder, never a blank box or a broken
   <img>, for events with no featured_image. Chamber-colored, calendar-themed,
   so an image-less card still looks designed rather than missing content. */
.cib-event-card-media-fallback {
	width: 100%; height: 100%; display: flex; flex-direction: column;
	align-items: center; justify-content: center; gap: 4px;
	background: linear-gradient(135deg, var(--cib-blue), var(--cib-navy));
	color: rgba(255,255,255,.85);
}
.cib-event-card-media-fallback .cib-event-card-fallback-icon { font-size: 30px; line-height: 1; opacity: .9; }
.cib-event-card-media-fallback .cib-event-card-fallback-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }

.cib-event-card-date-badge {
	position: absolute; top: 12px; left: 12px; z-index: 1;
	min-width: 50px; text-align: center; background: #fff; color: var(--cib-blue);
	border-radius: 8px; padding: 6px 8px; box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.cib-event-card-date-badge .cib-evt-month { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; color: var(--cib-sky); }
.cib-event-card-date-badge .cib-evt-day { display: block; font-size: 19px; font-weight: 800; line-height: 1.1; }

.cib-event-status-badge {
	position: absolute; top: 12px; right: 12px; z-index: 1;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	padding: 4px 10px; border-radius: 20px; color: #fff; background: var(--cib-gray);
}
.cib-event-status-badge.cib-status-soldout { background: #c0392b; }
.cib-event-status-badge.cib-status-waitlist { background: #b07a07; }
.cib-event-status-badge.cib-status-free { background: var(--cib-green); }
.cib-event-status-badge.cib-status-closed { background: #52606d; }
.cib-event-status-badge.cib-status-ended { background: #3a3a3a; }

.cib-event-card-body { flex: 1; padding: 16px 18px 6px; display: flex; flex-direction: column; gap: 6px; }
.cib-event-card-category {
	align-self: flex-start; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
	color: var(--cib-sky); background: var(--cib-bg); padding: 3px 9px; border-radius: 20px;
}
.cib-event-card-title { margin: 2px 0 0; font-size: 17px; font-weight: 800; line-height: 1.3; }
.cib-event-card-title a { color: var(--cib-blue); text-decoration: none; }
.cib-event-card-title a:hover { color: var(--cib-sky); }
.cib-event-card-meta { margin: 0; font-size: 13px; color: var(--cib-gray); display: flex; flex-direction: column; gap: 3px; }
.cib-event-card-meta-row { display: flex; align-items: flex-start; gap: 6px; }
.cib-event-card-date-line { font-weight: 650; color: #334155; }
.cib-event-card-meta-row .cib-event-card-meta-icon { flex-shrink: 0; width: 16px; text-align: center; }
.cib-event-card-excerpt {
	margin: 4px 0 0; font-size: 13px; line-height: 1.55; color: #555;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

.cib-event-card-footer {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 14px 18px 18px; margin-top: auto;
}
.cib-event-card-price { font-size: 14px; font-weight: 700; color: var(--cib-blue); }
.cib-event-card-price.cib-price-free { color: var(--cib-green); }
.cib-event-card-cta {
	display: inline-block; white-space: nowrap; padding: 9px 18px; border-radius: 50px;
	font-size: 13px; font-weight: 700; text-decoration: none !important;
	background: var(--cib-blue); color: #fff !important; transition: background var(--cib-transition);
}
.cib-event-card-cta:hover { background: var(--cib-navy); }
.cib-event-card-cta.cib-event-cta-disabled {
	background: var(--cib-bg); color: var(--cib-gray) !important; cursor: default; pointer-events: none;
}
.cib-event-card:focus-within { outline: 2px solid var(--cib-sky); outline-offset: 2px; }
.cib-event-card-title a:focus-visible,
.cib-event-card-cta:focus-visible { outline: 2px solid var(--cib-sky); outline-offset: 2px; }

.cib-events-empty-state {
	grid-column: 1 / -1; text-align: center; padding: 48px 20px; background: var(--cib-bg);
	border: 1.5px dashed var(--cib-border); border-radius: var(--cib-radius); color: var(--cib-gray); font-size: 15px;
}

/* -- Month grouping headers inside the List/Summary grid -- span the full
   grid width (not a grid item of its own column width). */
.cib-events-month-heading {
	grid-column: 1 / -1; margin: 8px 0 -4px; font-size: 15px; font-weight: 800;
	color: var(--cib-blue); border-bottom: 1.5px solid var(--cib-border); padding-bottom: 6px;
}

/* -- Toolbar: search/category/date filters + view tabs, shared by every view -- */
.cib-events-toolbar {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 14px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1.5px solid var(--cib-border);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.cib-events-filter-form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; flex: 1 1 auto; }
.cib-events-search-input,
.cib-events-category-select,
.cib-events-date-select,
.cib-events-filter-form input[type="month"],
.cib-events-filter-form input[type="number"] {
	padding: 9px 12px; border: 1.5px solid var(--cib-border); border-radius: 8px; font-size: 14px;
}
.cib-events-search-input { flex: 1 1 220px; min-width: 160px; }
.cib-events-find-btn {
	padding: 9px 18px; border: none; border-radius: 50px; background: var(--cib-blue); color: #fff;
	font-size: 13px; font-weight: 700; cursor: pointer; transition: background var(--cib-transition);
}
.cib-events-find-btn:hover { background: var(--cib-navy); }
.cib-events-view-tabs { display: flex; gap: 4px; flex-shrink: 0; }
.cib-events-view-tab {
	padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 700; text-decoration: none !important;
	color: var(--cib-gray);
}
.cib-events-view-tab.active { color: var(--cib-blue); background: var(--cib-bg); }
.cib-events-view-tab:hover { color: var(--cib-blue); }
@media (max-width: 700px) { .cib-events-toolbar { flex-direction: column; align-items: stretch; } }

/* -- Pagination -- */
.cib-events-pagination { display: flex; justify-content: space-between; margin-top: 28px; font-size: 14px; font-weight: 700; }
.cib-events-pagination a { color: var(--cib-blue); text-decoration: none; }
.cib-events-pagination a:hover { color: var(--cib-sky); }
.cib-events-pagination-disabled { color: var(--cib-border); }

/* -- Summary view: compact, full-width rows -- */
.cib-events-summary-row {
	display: grid; grid-template-columns: 56px 110px minmax(0, 1fr) auto; align-items: center; gap: 16px;
	padding: 14px 0; border-bottom: 1px solid var(--cib-border); min-width: 0;
}
.cib-events-summary-date { text-align: center; }
.cib-events-summary-dow { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--cib-sky); }
.cib-events-summary-day { display: block; font-size: 19px; font-weight: 800; color: var(--cib-blue); }
.cib-events-summary-time { font-size: 13px; color: var(--cib-gray); }
.cib-events-summary-daterange { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; color: var(--cib-blue); }
.cib-events-summary-title {
	margin: 0; font-size: 15px; font-weight: 700; min-width: 0; overflow-wrap: break-word;
}
.cib-events-summary-title a { color: var(--cib-blue); text-decoration: none; }
.cib-events-summary-title a:hover { color: var(--cib-sky); }
.cib-events-summary-cta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 700px) {
	.cib-events-summary-row { grid-template-columns: 44px 1fr; grid-template-areas: "date title" "date meta"; }
	.cib-events-summary-time { display: none; }
	.cib-events-summary-cta { grid-column: 1 / -1; justify-content: flex-start; margin-left: 56px; }
}

/* -- Month view grid -- */
.cib-events-month-nav { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.cib-events-month-arrow {
	width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
	border: 1.5px solid var(--cib-border); border-radius: 8px; color: var(--cib-blue); text-decoration: none; font-size: 18px;
}
.cib-events-month-arrow:hover { background: var(--cib-bg); }
.cib-events-today-btn {
	padding: 7px 14px; border: 1.5px solid var(--cib-border); border-radius: 8px; font-size: 13px; font-weight: 700;
	color: var(--cib-blue); text-decoration: none;
}
.cib-events-month-title { margin: 0 0 0 8px; font-size: 20px; font-weight: 800; color: var(--cib-navy); }
.cib-events-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--cib-border); border: 1px solid var(--cib-border); border-radius: var(--cib-radius); overflow: hidden; }
.cib-events-month-dow { background: var(--cib-bg); text-align: center; padding: 8px 0; font-size: 12px; font-weight: 700; color: var(--cib-gray); min-width: 0; }
.cib-events-month-day { background: #fff; min-height: 96px; min-width: 0; padding: 6px; display: flex; flex-direction: column; gap: 2px; overflow: hidden; }
.cib-events-month-day-outside { background: #fafafa; }
.cib-events-month-day-outside .cib-events-month-day-num { color: var(--cib-border); }
.cib-events-month-day-num { font-size: 12px; font-weight: 700; color: var(--cib-gray); }
.cib-events-month-event-label {
	display: block; font-size: 11px; line-height: 1.3; color: #fff; background: var(--cib-blue);
	border-radius: 4px; padding: 2px 5px; text-decoration: none !important; overflow: hidden;
	text-overflow: ellipsis; white-space: nowrap;
}
.cib-events-month-event-label:hover { background: var(--cib-navy); }
.cib-events-month-more { font-size: 11px; }
.cib-events-month-more summary { cursor: pointer; color: var(--cib-sky); font-weight: 700; list-style: none; }
.cib-events-month-more summary::-webkit-details-marker { display: none; }
.cib-events-month-more[open] { background: var(--cib-bg); border-radius: 6px; padding: 4px; margin-top: 2px; }
.cib-events-month-more a { margin-top: 2px; }
@media (max-width: 700px) { .cib-events-month-day { min-height: 64px; } .cib-events-month-event-label { font-size: 10px; } }

/* -- Year view: 12 mini-months with a dot indicator per day -- */
.cib-events-year-nav { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 20px; }
.cib-events-year-title { margin: 0; font-size: 22px; font-weight: 800; color: var(--cib-navy); min-width: 70px; text-align: center; }
.cib-events-year-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
@media (max-width: 900px) { .cib-events-year-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .cib-events-year-grid { grid-template-columns: 1fr; } }
.cib-events-year-month { background: #fff; border: 1px solid var(--cib-border); border-radius: var(--cib-radius); padding: 14px; }
.cib-events-year-month h3 { margin: 0 0 8px; font-size: 14px; font-weight: 800; color: var(--cib-blue); text-align: center; }
.cib-events-year-month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cib-events-year-day,
.cib-events-year-day-has-events {
	position: relative; aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
	font-size: 11px; color: var(--cib-gray); border: none; background: transparent; padding: 0; font-family: inherit;
}
.cib-events-year-day-outside { color: transparent; }
.cib-events-year-day-has-events { color: var(--cib-blue); font-weight: 700; cursor: pointer; border-radius: 50%; }
.cib-events-year-day-has-events:hover,
.cib-events-year-day-has-events:focus-visible { background: var(--cib-bg); outline: 2px solid var(--cib-sky); outline-offset: 1px; }
.cib-events-year-dot {
	position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%);
	width: 4px; height: 4px; border-radius: 50%; background: var(--cib-sky);
}
.cib-events-year-popover {
	position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10000;
	background: #fff; border-radius: var(--cib-radius); box-shadow: 0 12px 40px rgba(0,0,0,.25);
	padding: 24px; max-width: 360px; width: calc(100% - 40px); max-height: 70vh; overflow-y: auto;
}
.cib-events-year-popover-close {
	position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border: none; background: var(--cib-bg);
	border-radius: 50%; font-size: 16px; cursor: pointer; color: var(--cib-gray);
}
.cib-events-year-popover-title { margin: 0 24px 12px 0; font-size: 15px; font-weight: 800; color: var(--cib-navy); }
.cib-events-year-popover-event {
	display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-bottom: 1px solid var(--cib-border);
	text-decoration: none !important; color: var(--cib-blue); font-weight: 700; font-size: 14px;
}
.cib-events-year-popover-event:last-child { border-bottom: none; }
.cib-events-year-popover-time { font-size: 12px; font-weight: 600; color: var(--cib-gray); }
.cib-events-year-popover-daterange { font-size: 11px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--cib-gray); }

/* Desktop-only hover preview (mouse convenience, never required -- see
   cib-events-calendar.js, gated on (hover: hover) and (pointer: fine)). */
.cib-events-year-day-tooltip {
	position: fixed; z-index: 10001; pointer-events: none;
	background: var(--cib-navy); color: #fff; font-size: 12px; line-height: 1.5;
	padding: 8px 10px; border-radius: 6px; max-width: 220px; box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.cib-events-year-day-tooltip-event { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ============================================================
   Member Deals & Offers
   ============================================================ */
.cib-badge { display: inline-block; padding: 3px 10px; border-radius: 20px; background: var(--cib-bg); color: var(--cib-blue); font-size: 12px; font-weight: 700; }
.cib-badge-exclusive { background: #fff3cd; color: #7a5c00; }

.cib-deal-grid { grid-template-columns: repeat(3, 1fr); }
.cib-deal-card { padding: 20px; }
/* Dedicated class, not an override of the generic .cib-card-logo (which
   carries an unrelated 110px flex box / padding / background / border for
   Directory-style cards) — avoids fighting that cascade entirely. */
.cib-deal-card-logo { margin: 0 0 10px; }
.cib-deal-card-logo img { display: block; width: auto; height: auto; max-width: 200px; max-height: 84px; object-fit: contain; }
/* The Featured ribbon is absolutely positioned (top:8px, left:8px) and
   otherwise sits directly over the logo, which starts flush with the same
   top-left corner in normal flow. Only applies when the logo immediately
   follows a ribbon (i.e. only on Featured deals) — non-featured cards are
   unaffected, and nothing about the ribbon's own positioning changes. */
.cib-card-milestone-ribbon + .cib-deal-card-logo { margin-top: 34px; }
.cib-card-business-name { font-size: 12px; color: var(--cib-gray); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 4px; }
.cib-deal-title { font-size: 18px; margin: 0 0 8px; color: var(--cib-navy); }
.cib-deal-teaser { font-size: 14px; color: var(--cib-dark); margin: 0 0 14px; }
.cib-deal-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; }
.cib-deal-expiration { font-size: 12px; color: var(--cib-gray); }
.cib-deal-view-link { align-self: flex-start; }
/* Explicit state coverage so no theme/Divi/global anchor rule (most
   commonly a light :visited/:hover link color) can make this CTA's text
   unreadable against its own background. A bare .cib-deal-view-link:hover
   plus !important on color alone was NOT enough on staging — the active
   theme's own hover link color evidently also carries !important, and at
   matching specificity a later theme stylesheet can still win the tie. The
   selector is scoped with the .cib-deal-card ancestor (specificity 0,0,3,0
   vs the previous 0,0,2,0) — one full specificity tier higher than a bare
   class+pseudo-class selector — combined with !important on every property
   a theme could plausibly touch (color, background, text-decoration). This
   is the strongest guarantee available from the plugin's own stylesheet
   alone; the exact competing Divi/theme selector isn't inspectable from
   this codebase. The hover state deliberately keeps the same navy
   background as normal/visited (never cib-sky) — since that's the one
   guaranteed-safe background for white text — and signals hover via the
   existing --cib-shadow-hover brand variable (already used for .cib-card
   hover) instead. Do not change .cib-btn itself — scoped to Deal cards
   only, other CiaB buttons are unaffected. */
.cib-deal-card .cib-deal-view-link,
.cib-deal-card .cib-deal-view-link:visited {
	background: var(--cib-blue) !important;
	color: var(--cib-white) !important;
	text-decoration: none !important;
}
.cib-deal-card .cib-deal-view-link:hover,
.cib-deal-card .cib-deal-view-link:focus {
	background: var(--cib-blue) !important;
	color: var(--cib-white) !important;
	text-decoration: none !important;
	box-shadow: var(--cib-shadow-hover);
}
.cib-deal-card .cib-deal-view-link:focus-visible {
	outline: 2px solid var(--cib-blue);
	outline-offset: 2px;
}

.cib-deal-detail { max-width: 640px; }
/* Robust for both <img class="cib-deal-detail-logo"> and an optimizer-
   rewritten <picture class="cib-deal-detail-logo"><img></picture> — the
   class-bearing element may be either, so both it and any nested <img>
   get the sizing directly (see the identical pattern + rationale on
   .cib-portal-logo-img in class-cib-portal.php). margin-bottom stays on
   the outer/class-bearing selector only so it's never doubled. */
.cib-deal-detail-logo { margin-bottom: 12px; }
.cib-deal-detail-logo,
.cib-deal-detail-logo img { max-width: 200px; max-height: 64px; width: auto; height: auto; display: block; }
.cib-deal-full-details { margin: 16px 0; line-height: 1.6; }
.cib-deal-redacted-notice { background: var(--cib-bg); border: 1px solid var(--cib-border); border-radius: var(--cib-radius); padding: 16px 20px; margin: 16px 0; }
.cib-deal-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.cib-deal-promo-code { display: flex; align-items: center; gap: 10px; margin: 16px 0; }
.cib-deal-promo-code-value { font-family: monospace; font-size: 18px; font-weight: 700; background: var(--cib-bg); border: 1.5px dashed var(--cib-border); border-radius: 6px; padding: 8px 14px; letter-spacing: .05em; }
.cib-deal-redemption-fallback { color: var(--cib-gray); font-size: 13px; font-style: italic; }
.cib-notice { padding: 10px 16px; border-radius: 6px; font-size: 13px; margin: 12px 0; }
.cib-notice-success { background: #f0fdf4; border: 1px solid #4ade80; color: #166534; }
.cib-notice-error { background: #fce8e8; border: 1px solid #f5c6c6; color: #7a2020; }

.cib-deal-dialog { border: none; border-radius: var(--cib-radius); box-shadow: var(--cib-shadow-hover); max-width: 640px; width: 90vw; max-height: 85vh; overflow-y: auto; padding: 28px; }
.cib-deal-dialog::backdrop { background: rgba(0, 34, 68, 0.55); }
.cib-deal-dialog-close { position: absolute; top: 14px; right: 16px; background: none; border: none; font-size: 18px; cursor: pointer; color: var(--cib-gray); }
.cib-deal-dialog-close:hover { color: var(--cib-dark); }

@media (max-width: 900px) { .cib-deal-grid { grid-template-columns: repeat(2, 1fr); } }

/* ==============================================================
   Public application form -- multi-category selector
   (frontend-safe equivalent of the admin Member Edit category
   control: same visual language, no admin dependencies)
   ============================================================== */
.cib-cat-summary { margin-bottom: 8px; min-height: 24px; }
.cib-cat-summary-tag {
    display: inline-block;
    background: #e8f0fe;
    color: #1a56db;
    border: 1px solid #c3d9fd;
    border-radius: 3px;
    font-size: 12px;
    padding: 2px 8px;
    margin: 0 4px 4px 0;
}
.cib-cat-summary-empty { font-size: 12px; color: #999; font-style: italic; }
.cib-cat-tree {
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #ddd;
    border-radius: var(--cib-radius, 6px);
    padding: 8px;
    background: #fafbfc;
}
.cib-cat-parent { margin-bottom: 8px; }
.cib-cat-parent > label { font-weight: 600; display: block; }
.cib-cat-children { margin-left: 18px; margin-top: 4px; }
.cib-cat-children label { display: block; margin-bottom: 3px; font-size: 13px; font-weight: 400; }
#cib-cat-search-clear { padding: 6px 12px; font-size: 14px; }

/* Employee-based membership live preview */
.cib-membership-preview {
    margin-top: 10px;
    padding: 12px 14px;
    background: #f0f6fc;
    border: 1px solid #c8dcf0;
    border-radius: var(--cib-radius, 6px);
    display: none;
}
.cib-membership-preview.is-visible { display: block; }
.cib-membership-preview-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: #556; margin: 0 0 4px; }
.cib-membership-preview-name { font-size: 16px; font-weight: 700; color: var(--cib-dark, #222); margin: 0; }
.cib-membership-preview-price { font-size: 14px; color: #445; margin: 2px 0 0; }
.cib-membership-preview.is-gap { background: #fff8ec; border-color: #f0d9a8; }
.cib-membership-preview.is-gap .cib-membership-preview-name { color: #7a5a12; font-size: 13px; font-weight: 600; }
@media (max-width: 600px) { .cib-deal-grid { grid-template-columns: 1fr; } .cib-deal-dialog { width: 94vw; padding: 20px; } }

/* Event detail venue/organizer enhancements + no-key map preview. */
.cib-event-detail-content { min-width: 0; flex: 1; }
.cib-event-detail-link,
.cib-event-address-link { color: var(--cib-blue); text-decoration: underline; text-underline-offset: 2px; }
.cib-event-detail-link:hover,
.cib-event-address-link:hover { text-decoration-thickness: 2px; }
.cib-event-map-wrap { display: block; margin-top: 10px; width: 100%; overflow: hidden; border: 1px solid var(--cib-border); border-radius: 8px; background: #fff; }
.cib-event-map-wrap iframe { display: block; width: 100%; height: 180px; border: 0; }

.cib-event-series-continuation { background: var(--cib-bg); border: 1px solid var(--cib-border); border-radius: var(--cib-radius); padding: 12px 16px; margin-top: 12px; }
.cib-event-series-continuation a { color: var(--cib-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* JS (cib-event-detail-modals.js) toggles .is-open and never touches
 * location.hash, so these can't be broken by theme/page-builder JS that
 * manipulates the URL hash on its own (observed: Divi's own frontend
 * script forces a scroll-restoration pass keyed off location.hash on
 * every page load). The :target rule is kept only as a no-JS fallback. */
.cib-event-modal { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; padding: 24px; }
.cib-event-modal:target,
.cib-event-modal.is-open { display: flex; }
.cib-event-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.cib-event-modal-card { position: relative; z-index: 1; width: min(520px, 100%); max-height: calc(100vh - 48px); overflow: auto; background: #fff; color: #1d2327; border-radius: 10px; box-shadow: 0 18px 60px rgba(0,0,0,.25); padding: 24px 28px; }
.cib-event-modal-card h3 { margin: 0 36px 16px 0; color: var(--cib-blue); font-size: 20px; }
.cib-event-modal-card p { margin: 10px 0; }
.cib-event-modal-close { position: absolute; top: 12px; right: 16px; font-size: 28px; line-height: 1; color: #555; text-decoration: none; }

/* Quantity is controlled by CiaB's -/+ buttons or direct typing only. */
.cib-event-qty-input.cib-cart-qty { -moz-appearance: textfield; appearance: textfield; }
.cib-event-qty-input.cib-cart-qty::-webkit-outer-spin-button,
.cib-event-qty-input.cib-cart-qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.cib-attendee-email-toggle-wrap { margin: 4px 0 18px; padding: 12px 14px; border: 1px solid var(--cib-border); border-radius: 7px; background: #f8fafc; }
.cib-attendee-email-toggle-wrap label { font-size: 13px; cursor: pointer; }
.cib-attendee-email-toggle-wrap .cib-form-hint { display: block; margin: 6px 0 0 24px; color: #666; font-size: 12px; }
.cib-attendee-heading { margin: 8px 0 4px; font-size: 15px; color: #1d2327; }
.cib-attendee-intro { margin: 0 0 14px; color: #666; font-size: 12px; }
.cib-attendee-row { padding: 14px; border: 1px solid var(--cib-border); border-radius: 8px; background: #fbfcfe; }
.cib-attendee-email-group { flex-basis: 100% !important; }
.cib-attendee-email-group input::placeholder { color: #9aa0a6; opacity: 1; }

/* Divi/Extra compatibility: native event detail routes still use the active
   theme header/footer, but Divi expects content beneath #main-content. */
.cib-event-divi-shell > .container { width: 100%; max-width: none; padding: 0; }
