/* =============================================================
   CityPro UI Theme — theme.css  v1.0.0
   Pixel-for-pixel port of the demo HTML.
   No Tailwind. No React. Vanilla CSS. RTL Hebrew.
   ============================================================= */

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { direction: rtl; scroll-behavior: smooth; }
body {
    font-family: 'Assistant', 'Heebo', sans-serif;
    background: #F8FAFC;
    color: #1e293b;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #1A2B3C; border-radius: 10px; }

/* ── NAV ───────────────────────────────────────────────────── */
.cp-nav {
    background: #1A2B3C;
    color: #fff;
    padding: 1rem 2.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 50;
    box-shadow: 0 4px 24px rgba(0,0,0,.25);
    border-bottom: 1px solid rgba(59,130,246,.25);
}
.cp-nav__brand { display: flex; align-items: center; gap: 1rem; }
.cp-nav__mark {
    width: 48px; height: 48px;
    background: #fff; color: #1A2B3C;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Heebo', sans-serif;
    font-weight: 900; font-size: 1.5rem;
    box-shadow: inset 0 2px 6px rgba(0,0,0,.08);
    border: 1px solid rgba(219,234,254,.1);
    transition: transform .2s;
    flex-shrink: 0;
}
.cp-nav__mark:hover { transform: scale(1.05); }
.cp-nav__brand-text { text-align: right; }
.cp-nav__wordmark {
    font-family: 'Heebo', sans-serif;
    font-size: 1.875rem; font-weight: 900;
    letter-spacing: -.05em; text-transform: uppercase;
    line-height: 1; display: block;
}
.cp-nav__wordmark-blue { color: #60a5fa; font-weight: 300; }
.cp-nav__tagline {
    font-size: .625rem; font-weight: 700;
    color: #93c5fd; text-transform: uppercase;
    letter-spacing: .3em; margin-top: 2px;
}
.cp-nav__actions {
    display: none;
    gap: 2.5rem; align-items: center;
    font-size: .8125rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .05em;
}
@media (min-width:1024px) { .cp-nav__actions { display: flex; } }
.cp-nav__welcome {
    display: flex; align-items: center; gap: .5rem;
    color: #eff6ff;
    background: rgba(30,58,138,.4);
    padding: .5rem 1rem; border-radius: 12px;
    border: 1px solid rgba(30,64,175,.3);
}
.cp-nav__link {
    display: flex; align-items: center; gap: .5rem;
    transition: color .15s; color: #fff; cursor: pointer;
}
.cp-nav__link:hover { color: #93c5fd; }
.cp-nav__link--amber { color: #fbbf24; }
.cp-nav__link--amber:hover { color: #f59e0b; }

/* ── HERO ──────────────────────────────────────────────────── */
.cp-hero {
    max-width: 1500px; margin: 0 auto;
    padding: 4rem 2rem 2rem;
    text-align: center;
}
.cp-hero__title {
    font-family: 'Heebo', sans-serif;
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 900; color: #1A2B3C;
    margin-bottom: 1rem; line-height: 1.25;
}
.cp-hero__sub {
    font-family: 'Assistant', sans-serif;
    font-size: clamp(1rem, 2vw, 1.375rem);
    font-weight: 400; color: #64748b;
    max-width: 48rem; margin: 0 auto;
}

/* ── PAGE GRID ─────────────────────────────────────────────── */
.cp-page {
    max-width: 1500px; margin: 0 auto;
    padding: 2rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
}
@media (min-width:1024px) {
    .cp-page { grid-template-columns: 3fr 9fr; }
}

/* ── SIDEBAR ───────────────────────────────────────────────── */
.cp-filter-card {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 20px 60px rgba(0,0,0,.1);
    padding: 2rem;
    text-align: right;
    position: sticky; top: 7rem;
}
.cp-filter-card__title {
    display: flex; align-items: center; gap: .75rem;
    font-size: 1.125rem; font-weight: 900; color: #000;
    margin-bottom: 2rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #f1f5f9;
    text-transform: uppercase; letter-spacing: -.01em;
}
.cp-filter-card__title svg { color: #1e40af; }
.cp-filter-sec { margin-bottom: 2.5rem; }
.cp-filter-sec:last-child { margin-bottom: 1rem; }
.cp-filter-sec__lbl {
    display: block;
    font-size: .875rem; font-weight: 700; color: #000;
    margin-bottom: 1rem; text-transform: uppercase;
    letter-spacing: .05em;
    text-decoration: underline;
    text-decoration-color: #3b82f6;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}
/* Area grid */
.cp-area-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: .75rem;
}
.cp-area-btn {
    font-family: 'Assistant', sans-serif;
    font-size: .75rem; font-weight: 700;
    padding: .625rem 0;
    border: 1px solid #e2e8f0; border-radius: 12px;
    color: #334155; background: rgba(248,250,252,.5);
    transition: background .15s, color .15s, border-color .15s;
    text-align: center;
}
.cp-area-btn:hover, .cp-area-btn.is-active {
    background: #1e40af; color: #fff; border-color: #1e40af;
}
/* Range header */
.cp-range-hdr {
    display: flex; justify-content: space-between; align-items: center;
    font-size: .875rem; font-weight: 700; color: #000;
    margin-bottom: .75rem; text-transform: uppercase;
}
.cp-range-val {
    font-size: .75rem; font-weight: 700;
    color: #1e40af; background: #eff6ff;
    padding: .125rem .75rem; border-radius: 9999px;
    border: 1px solid #dbeafe;
}
/* Range input */
.cp-range {
    -webkit-appearance: none; appearance: none;
    width: 100%; height: 8px;
    background: #f1f5f9; border-radius: 9999px;
    outline: none; cursor: pointer;
    accent-color: #1e40af;
}
.cp-range--green { accent-color: #059669; }
.cp-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px; height: 18px; border-radius: 50%;
    background: #1e40af; cursor: pointer;
    box-shadow: 0 2px 6px rgba(30,64,175,.4);
}
.cp-range--green::-webkit-slider-thumb { background: #059669; }
/* Procurement checkboxes */
.cp-check-list { display: flex; flex-direction: column; gap: 1rem; }
.cp-check-item {
    display: flex; align-items: center; justify-content: flex-end;
    gap: 1rem; cursor: pointer;
}
.cp-check-item span {
    font-size: .875rem; font-weight: 700; color: #000;
    letter-spacing: -.01em; transition: color .15s;
    margin-left: .5rem; order: 1;
}
.cp-check-item input[type="checkbox"] {
    order: 2; width: 20px; height: 20px;
    border-radius: 4px; border: 1px solid #cbd5e1;
    accent-color: #1e40af; cursor: pointer; flex-shrink: 0;
}
.cp-check-item:hover span { color: #1e40af; }
/* Insurance row */
.cp-ins-row {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: .5rem;
}
.cp-ins-min {
    font-size: .75rem; font-weight: 700; color: #94a3b8; font-style: italic;
}
.cp-ins-val {
    font-family: 'Heebo', sans-serif;
    font-size: 1.125rem; font-weight: 900; color: #047857; line-height: 1;
}

/* ── MAIN ──────────────────────────────────────────────────── */
.cp-main { display: flex; flex-direction: column; gap: 3rem; }

/* Classification panel */
.cp-classify {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 20px 60px rgba(0,0,0,.1);
    padding: 2.5rem; overflow: visible;
    position: relative; text-align: right;
}
.cp-classify__badge {
    position: absolute; top: 0; right: 2.5rem;
    transform: translateY(-50%);
    background: #1d4ed8; color: #fff;
    padding: .5rem 1.5rem; border-radius: 9999px;
    font-size: .75rem; font-weight: 900;
    box-shadow: 0 4px 12px rgba(29,78,216,.4);
    display: flex; align-items: center; gap: .5rem;
    white-space: nowrap; z-index: 2;
}
.cp-selects-row {
    display: grid; grid-template-columns: 1fr;
    gap: 2rem; margin-bottom: 2.5rem; margin-top: 1rem;
}
@media (min-width:768px) {
    .cp-selects-row { grid-template-columns: repeat(3,1fr); }
}
.cp-sel-group { display: flex; flex-direction: column; gap: .25rem; }
.cp-sel-label {
    font-size: .875rem; font-weight: 700; color: #1A1A1A;
    margin-bottom: .75rem;
    display: flex; align-items: center; justify-content: flex-end; gap: .5rem;
    letter-spacing: .01em;
}
.cp-select {
    width: 100%;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 1rem 1.25rem 1rem 3rem;
    font-family: 'Heebo', sans-serif;
    font-size: .875rem; font-weight: 700; color: #0f172a;
    appearance: none; -webkit-appearance: none;
    cursor: pointer;
    box-shadow: inset 0 2px 4px rgba(0,0,0,.04);
    transition: border-color .15s, box-shadow .15s;
    text-align: right; direction: rtl;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 1rem center;
    background-size: 1.25rem;
}
.cp-select:focus {
    outline: none; border-color: #1d4ed8;
    box-shadow: 0 0 0 4px rgba(29,78,216,.06);
}
.cp-select:disabled { opacity: .4; cursor: not-allowed; }
/* Search input */
.cp-search-wrap { position: relative; }
.cp-search-icon {
    position: absolute; top: 50%; right: 1.5rem;
    transform: translateY(-50%);
    color: #94a3b8; pointer-events: none;
    transition: color .15s;
}
.cp-search-wrap:focus-within .cp-search-icon { color: #1d4ed8; }
.cp-search-input {
    width: 100%;
    background: rgba(248,250,252,.8);
    border: 1px solid #e2e8f0;
    border-radius: 24px;
    padding: 1.25rem 4rem 1.25rem 2rem;
    font-family: 'Assistant', sans-serif;
    font-size: .875rem; font-weight: 500; color: #0f172a;
    outline: none;
    box-shadow: inset 0 2px 4px rgba(0,0,0,.04);
    transition: background .15s, border-color .15s, box-shadow .15s;
    direction: rtl; text-align: right;
}
.cp-search-input:focus {
    background: #fff; border-color: #1d4ed8;
    box-shadow: 0 0 0 4px rgba(29,78,216,.05);
}
.cp-search-input::placeholder { color: #94a3b8; }
/* Active filter pill */
.cp-pill-wrap { display: flex; justify-content: center; }
.cp-pill {
    background: #1A2B3C; color: #fff;
    padding: .875rem 2rem; border-radius: 16px;
    box-shadow: 0 10px 30px rgba(26,43,60,.35);
    border: 1px solid rgba(30,64,175,.25);
    display: inline-flex; align-items: center; gap: .5rem;
    min-width: 300px; justify-content: center;
    font-size: .875rem; font-weight: 700;
    letter-spacing: -.01em;
}
.cp-pill__sep { opacity: .4; font-weight: 300; }

/* ── SUPPLIER CARDS ────────────────────────────────────────── */
.cp-cards { display: flex; flex-direction: column; gap: 0; }

/* ── Card base ── */
.cp-card {
    position: relative;
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);
    overflow: hidden;
    margin-bottom: 1rem;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.cp-card--verified {
    cursor: pointer;
}
.cp-card--verified:hover {
    border-color: rgba(30,64,175,.4);
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
}
/* Top accent bar */
.cp-card__topbar { height: 6px; width: 100%; background: #1A2B3C; }
.cp-card--inactive .cp-card__topbar { background: #cbd5e1; }

/* Premium ribbon */
.cp-card__ribbon {
    position: absolute; top: 0; left: 0;
    background: #16A34A; color: #fff;
    font-family: 'Heebo', sans-serif;
    font-size: 9px; font-weight: 900;
    padding: 6px 16px;
    border-radius: 0 0 8px 0;
    z-index: 10;
    box-shadow: 0 2px 6px rgba(0,0,0,.12);
    border-right: 1px solid rgba(0,0,0,.05);
    border-bottom: 1px solid rgba(0,0,0,.05);
    letter-spacing: .05em;
    transition: transform .2s;
}
.cp-card--verified:hover .cp-card__ribbon { transform: scale(1.05); }

/* Card body */
.cp-card__body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
@media (min-width:768px) {
    .cp-card__body { flex-direction: row; align-items: flex-start; }
}

/* Logo column */
.cp-card__logo-col {
    flex-shrink: 0;
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
}
.cp-card__logo-col--dim { opacity: .3; filter: blur(1px); }
.cp-card__logo-box {
    width: 96px; height: 96px;
    border-radius: 8px;
    border: 1px solid #f1f5f9;
    padding: 8px;
    display: flex; align-items: center; justify-content: center;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    overflow: hidden;
}
.cp-card__logo-box img {
    max-width: 100%; max-height: 100%; object-fit: contain;
    transition: transform .2s;
}
.cp-card--verified:hover .cp-card__logo-box img { transform: scale(1.05); }
.cp-card__verified-mark {
    display: flex; align-items: center; gap: 4px;
    color: #059669; font-weight: 700; font-size: 10px;
    font-family: 'Heebo', sans-serif; white-space: nowrap;
}

/* Content column */
.cp-card__content { flex-grow: 1; overflow: hidden; text-align: right; }
.cp-card__hdr { margin-bottom: .25rem; }
.cp-card__name {
    font-family: 'Assistant', sans-serif;
    font-size: 1.25rem; font-weight: 700; color: #1A1A1A;
    margin-bottom: 2px; line-height: 1; letter-spacing: .03px;
}
.cp-card__meta {
    font-family: 'Assistant', sans-serif;
    font-size: 11px; font-weight: 700; color: #64748b;
    text-transform: uppercase; letter-spacing: -.01em;
}

/* Locked area */
.cp-card__locked { position: relative; margin-top: 1rem; }
.cp-card__overlay {
    position: absolute; inset: 0; z-index: 20;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.1);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    border-radius: 8px;
}
.cp-card__lock-pill {
    background: rgba(30,41,59,.9); color: #fff;
    padding: .75rem 1.5rem; border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,.35);
    display: flex; align-items: center; gap: .75rem;
    border: 1px solid rgba(71,85,105,.5);
}
.cp-card__lock-pill svg { color: #fbbf24; flex-shrink: 0; }
.cp-card__lock-pill span { font-size: .875rem; font-weight: 700; white-space: nowrap; }

/* Blurred state */
.cp-card__blurred {
    opacity: .2; filter: blur(2px);
    pointer-events: none; user-select: none;
}

/* Badges row */
.cp-card__badges {
    display: flex; flex-direction: row; flex-wrap: nowrap;
    gap: 6px; margin-bottom: 1rem;
    max-width: 100%; overflow: hidden;
}

/* Individual badge */
.cp-badge {
    position: relative;
    display: flex; align-items: center; gap: 6px;
    padding: 6px 10px 6px 8px;
    border-radius: 4px; border: 1px solid;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    flex-shrink: 0;
}
.cp-badge__bar {
    position: absolute; right: 0; top: 0; bottom: 0;
    width: 4px; border-radius: 0 4px 4px 0;
}
/* Badge colours */
.cp-badge--ins { background: #ecfdf5; border-color: #a7f3d0; }
.cp-badge--ins .cp-badge__bar { background: #059669; }
.cp-badge--ins svg { stroke: #047857; }
.cp-badge--ins span { color: #065f46; }

.cp-badge--mun { background: #eff6ff; border-color: #bfdbfe; }
.cp-badge--mun .cp-badge__bar { background: #1d4ed8; }
.cp-badge--mun svg { stroke: #1d4ed8; }
.cp-badge--mun span { color: #1e3a8a; }

.cp-badge--frame { background: #fffbeb; border-color: #fde68a; }
.cp-badge--frame .cp-badge__bar { background: #C5A059; }
.cp-badge--frame svg { stroke: #C5A059; }
.cp-badge--frame span { color: #78350f; }

.cp-badge span {
    font-family: 'Assistant', sans-serif;
    font-size: 10px; font-weight: 700;
    line-height: 1; white-space: nowrap;
    text-transform: uppercase; letter-spacing: .02em;
}

/* Description */
.cp-card__desc {
    font-size: .875rem; color: #475569;
    line-height: 1.7; margin-bottom: 1rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden; max-width: 56rem;
}

/* Bottom row */
.cp-card__bottom {
    display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem;
    border-top: 1px solid #f1f5f9; padding-top: 1rem;
}
.cp-card__chip {
    display: flex; align-items: center; gap: .5rem;
    font-family: 'Assistant', sans-serif;
    font-size: 11px; font-weight: 700; color: #475569;
    background: #f8fafc; padding: 4px 10px; border-radius: 4px;
    white-space: nowrap;
}
.cp-card__chip svg { stroke: #94a3b8; flex-shrink: 0; }
.cp-card__cta {
    font-family: 'Assistant', sans-serif;
    font-size: 11px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
    padding: .875rem 2rem; border-radius: 12px;
    background: #2D3436; color: #fff;
    transition: background .15s, transform .1s;
    box-shadow: 0 4px 12px rgba(0,0,0,.18);
    border: 1px solid rgba(255,255,255,.05);
    margin-right: auto;
}
.cp-card__cta:hover { background: #1E272E; }
.cp-card__cta:active { transform: scale(.98); }
.cp-card__cta-chev { opacity: .4; }

/* No results */
.cp-no-results {
    font-size: 1rem; color: #64748b;
    padding: 2rem; text-align: center;
}

/* ── PAGINATION ─────────────────────────────────────────────── */
.cp-pagination {
    display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap;
    margin-top: 1rem;
}
.cp-pag__item {
    width: 40px; height: 40px;
    border-radius: 10px; border: 1px solid #e2e8f0;
    display: flex; align-items: center; justify-content: center;
    font-size: .875rem; font-weight: 700; color: #334155;
    background: #fff; transition: background .15s, color .15s;
    text-decoration: none;
}
.cp-pag__item:hover { background: #1A2B3C; color: #fff; border-color: #1A2B3C; }
.cp-pag__item--on { background: #1A2B3C; color: #fff; border-color: #1A2B3C; pointer-events: none; }

/* ── FOOTER ─────────────────────────────────────────────────── */
.cp-footer {
    padding: 4rem 2rem; text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 1.5rem;
    opacity: .3; filter: grayscale(1); transition: opacity .2s;
}
.cp-footer:hover { opacity: .5; }
.cp-footer__logos { display: flex; justify-content: center; gap: 3rem; }
.cp-footer__logo-ph { width: 48px; height: 48px; background: #cbd5e1; border-radius: 8px; }
.cp-footer__brand {
    font-size: .75rem; font-weight: 900; color: #475569;
    letter-spacing: .4em; text-transform: uppercase;
}
.cp-footer__sub {
    font-size: .625rem; font-weight: 500; color: #64748b;
    max-width: 32rem;
}

/* ══════════════════════════════════════════════════════════
   SINGLE SUPPLIER PROFILE PAGE
   ══════════════════════════════════════════════════════════ */
.cp-profile {
    max-width: 1100px; margin: 0 auto; padding: 2rem;
}
.cp-profile__back { margin-bottom: 1.5rem; }
.cp-profile__back-link {
    display: inline-flex; align-items: center; gap: .5rem;
    font-size: .875rem; font-weight: 700; color: #475569;
    transition: color .15s;
}
.cp-profile__back-link:hover { color: #1A2B3C; }

/* Profile card */
.cp-profile__card {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 25px 80px rgba(0,0,0,.12);
    overflow: hidden;
}
.cp-profile__topbar {
    height: 6px; background: #1A2B3C; width: 100%;
}

/* Profile header */
.cp-profile__header {
    padding: 2.5rem 3rem;
    border-bottom: 1px solid #f1f5f9;
    display: flex; flex-direction: column; gap: 2rem; align-items: flex-start;
}
@media (min-width:768px) {
    .cp-profile__header { flex-direction: row; }
}
.cp-profile__logo-wrap {
    width: 8rem; height: 8rem;
    border-radius: 16px;
    border: 1px solid #f1f5f9;
    padding: 1rem; background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
}
.cp-profile__logo-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cp-profile__title-area { flex-grow: 1; }
.cp-profile__name-row {
    display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
    margin-bottom: .25rem;
}
.cp-profile__name {
    font-family: 'Assistant', sans-serif;
    font-size: 1.875rem; font-weight: 900; color: #0f172a;
    letter-spacing: -.02em;
}
.cp-profile__cat-badge {
    background: #dbeafe; color: #1e40af;
    font-size: .75rem; font-weight: 900;
    padding: 4px 12px; border-radius: 8px;
    text-transform: uppercase; letter-spacing: .05em;
}
.cp-profile__meta-row {
    display: flex; gap: 1rem; align-items: center;
    font-size: .875rem; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: .06em;
    font-family: 'Assistant', sans-serif;
    margin-bottom: 1rem; flex-wrap: wrap;
}
.cp-profile__meta-sep { color: #e2e8f0; }
.cp-profile__headline {
    font-size: 1.25rem; font-weight: 700;
    color: rgba(30,58,138,.8); line-height: 1.35;
    border-right: 4px solid #2563eb;
    padding-right: 1rem; margin-top: .5rem;
}

/* Profile body */
.cp-profile__body {
    display: grid; grid-template-columns: 1fr;
}
@media (min-width:768px) {
    .cp-profile__body { grid-template-columns: 8fr 4fr; }
}
.cp-profile__main { padding: 2.5rem 3rem; display: flex; flex-direction: column; gap: 2.5rem; }

/* Profile section */
.cp-profile__section-title {
    font-size: .75rem; font-weight: 900; color: #94a3b8;
    text-transform: uppercase; letter-spacing: .1em;
    margin-bottom: 1rem;
    display: flex; align-items: center; gap: .5rem;
}
.cp-profile__section-title svg { stroke: #94a3b8; flex-shrink: 0; }

/* Tags */
.cp-profile__tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.cp-profile__tag {
    background: #f8fafc; color: #334155;
    padding: .5rem 1rem; border-radius: 12px;
    font-size: .875rem; font-weight: 700;
    border: 1px solid #f1f5f9;
}

/* Client logos grid */
.cp-profile__clients {
    display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem;
}
@media (min-width:480px) {
    .cp-profile__clients { grid-template-columns: repeat(5,1fr); }
}
.cp-profile__client-item { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.cp-profile__client-logo {
    width: 100%; aspect-ratio: 1;
    background: #f8fafc; border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid #f1f5f9;
    filter: grayscale(1); transition: filter .15s, border-color .15s;
    overflow: hidden;
}
.cp-profile__client-item:hover .cp-profile__client-logo {
    filter: grayscale(0); border-color: #bfdbfe;
}
.cp-profile__client-logo img { width: 60px; height: 60px; object-fit: contain; }

/* Framework text */
.cp-profile__framework {
    font-size: .875rem; color: #334155; line-height: 1.8;
    background: #f8fafc; padding: 1rem 1.25rem;
    border-radius: 12px; border: 1px solid #f1f5f9;
}

/* Contact list */
.cp-profile__contact-list { display: flex; flex-direction: column; gap: .75rem; }
.cp-profile__contact-item {
    display: flex; align-items: center; gap: .75rem;
    font-size: .875rem; font-weight: 700; color: #475569;
    padding: .75rem 1rem;
    background: #f8fafc; border-radius: 12px;
    border: 1px solid #f1f5f9;
    transition: background .15s, color .15s;
}
.cp-profile__contact-item:hover { background: #eff6ff; color: #1A2B3C; }
.cp-profile__contact-item svg { stroke: #94a3b8; flex-shrink: 0; }

/* Sidebar panel */
.cp-profile__sidebar {
    background: rgba(248,250,252,.5);
    padding: 2.5rem 2rem;
    border-right: 1px solid #f1f5f9;
    display: flex; flex-direction: column; gap: 2rem;
}
.cp-profile__sidebar-title {
    font-size: .75rem; font-weight: 900; color: #0f172a;
    text-transform: uppercase; letter-spacing: .1em;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: .75rem; margin-bottom: .25rem;
    display: flex; align-items: center; gap: .5rem;
}
.cp-profile__sidebar-title svg { stroke: #059669; }

/* Check items */
.cp-profile__checks { display: flex; flex-direction: column; gap: 1.5rem; }
.cp-profile__check { display: flex; gap: 1rem; align-items: flex-start; }
.cp-profile__check-icon {
    flex-shrink: 0; width: 24px; height: 24px;
    border-radius: 50%; background: #d1fae5;
    display: flex; align-items: center; justify-content: center;
}
.cp-profile__check-icon svg { stroke: #059669; }
.cp-profile__check-label {
    font-size: .875rem; font-weight: 900; color: #1e293b;
    margin-bottom: 2px; line-height: 1;
}
.cp-profile__check-val { font-size: .75rem; font-weight: 700; color: #64748b; }

/* Verified stamp */
.cp-profile__stamp {
    border-top: 1px solid #e2e8f0; padding-top: 2rem;
    display: flex; flex-direction: column; align-items: center;
    text-align: center; gap: .75rem;
}
.cp-profile__stamp-award {
    background: #fff; padding: .75rem; border-radius: 50%;
    box-shadow: inset 0 2px 6px rgba(0,0,0,.06);
    border: 1px solid #f1f5f9;
}
.cp-profile__stamp-award svg { stroke: #C5A059; }
.cp-profile__stamp-title {
    font-size: 11px; font-weight: 900; color: #0f172a;
    text-transform: uppercase; letter-spacing: -.01em;
}
.cp-profile__stamp-date {
    font-size: 10px; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: .02em;
    font-family: 'Assistant', sans-serif;
}

/* CTA button */
.cp-profile__cta-btn {
    display: flex; align-items: center; justify-content: center; gap: .75rem;
    width: 100%; padding: 1rem;
    background: #1A2B3C; color: #fff;
    border-radius: 16px;
    font-family: 'Heebo', sans-serif; font-size: .875rem; font-weight: 900;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
    transition: background .15s;
    text-decoration: none;
}
.cp-profile__cta-btn:hover { background: #2D3E50; }


/* =============================================================
   CARD ENHANCEMENTS — new field renders
   ============================================================= */

/* ── Service areas line under company meta ── */
.cp-card__areas {
    font-size: 10px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: 3px;
}

/* ── Expired insurance badge ── */
.cp-badge--expired {
    background: #fff7ed;
    border-color: #fed7aa;
}
.cp-badge--expired .cp-badge__bar { background: #ea580c; }
.cp-badge--expired svg { stroke: #ea580c; }
.cp-badge--expired span { color: #7c2d12; }

/* ── Compliance row (insurance amount + tax) ── */
.cp-card__compliance {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: .75rem;
}
.cp-card__compliance-item {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: 11px;
    font-weight: 700;
    color: #475569;
    font-family: 'Assistant', sans-serif;
}
.cp-card__compliance-item svg { stroke: #94a3b8; flex-shrink: 0; }
.cp-card__compliance-item--ins .cp-card__compliance-main {
    font-family: 'Heebo', sans-serif;
    font-weight: 900;
    font-size: .875rem;
    color: #047857;
}
.cp-card__compliance-sub {
    font-size: 10px;
    font-weight: 700;
    color: #94a3b8;
    margin-right: .25rem;
}

/* ── Insurance type tags ── */
.cp-card__ins-types {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-bottom: .875rem;
}
.cp-ins-tag {
    display: inline-block;
    font-family: 'Assistant', sans-serif;
    font-size: 10px;
    font-weight: 700;
    color: #1e40af;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    padding: 2px 8px;
    text-transform: uppercase;
    letter-spacing: .02em;
    white-space: nowrap;
}
.cp-ins-tag--empty {
    color: #94a3b8;
    background: #f8fafc;
    border-color: #e2e8f0;
}

/* ── Client logos in card ── */
.cp-card__clients {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: .5rem;
    justify-content: center;
}
.cp-card__client-logo {
    width: 28px;
    height: 28px;
    border-radius: 4px;
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cp-card__client-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .6;
}
.cp-card__client-count {
    font-size: 10px;
    font-weight: 700;
    color: #64748b;
    text-align: center;
    margin-top: 4px;
    font-family: 'Assistant', sans-serif;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── meta-sep inside .cp-card__meta ── */
.cp-card__meta-sep { color: #cbd5e1; margin: 0 2px; }

/* ── Website chip link style ── */
.cp-card__chip--link {
    text-decoration: none;
    color: #1d4ed8;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    transition: background .15s;
}
.cp-card__chip--link:hover { background: #dbeafe; }
.cp-card__chip--link svg { stroke: #1d4ed8; }

/* ── Profile sidebar: expired icon variant ── */
.cp-profile__check-icon--warn {
    background: #fff7ed;
}
.cp-profile__check-icon--warn svg { stroke: #ea580c; }

/* ── Profile tag empty state ── */
.cp-profile__tag--empty {
    color: #94a3b8;
    background: #f8fafc;
    border-color: #e2e8f0;
    font-style: italic;
}


/* =============================================================
   FILTERS REBUILD — v2.0
   RTL Hebrew. Layout + visual only. No backend changes.
   ============================================================= */

/* ── TOP FILTER BAR ────────────────────────────────────────── */
.cp-topbar-wrap {
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 2rem 1.5rem;
}

.cp-topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,.07);
    padding: 1.25rem 1.5rem;
    direction: rtl;
}

.cp-topbar__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 180px;
}
.cp-topbar__field--search {
    flex: 2;
    min-width: 240px;
}

.cp-topbar__label {
    font-family: 'Heebo', sans-serif;
    font-size: .75rem;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: .05em;
    text-align: right;
}

/* Text input */
.cp-topbar__input-wrap {
    position: relative;
}
.cp-topbar__icon {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
}
.cp-topbar__text {
    width: 100%;
    height: 44px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0 42px 0 14px;
    font-family: 'Assistant', sans-serif;
    font-size: .875rem;
    font-weight: 500;
    color: #0f172a;
    direction: rtl;
    text-align: right;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.cp-topbar__text:focus {
    border-color: #1d4ed8;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(29,78,216,.07);
}
.cp-topbar__text::placeholder { color: #94a3b8; }

/* Dropdown */
.cp-topbar__select {
    width: 100%;
    height: 44px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0 14px 0 36px;
    font-family: 'Heebo', sans-serif;
    font-size: .875rem;
    font-weight: 700;
    color: #0f172a;
    direction: rtl;
    text-align: right;
    appearance: none; -webkit-appearance: none;
    cursor: pointer;
    outline: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 10px center;
    background-size: 18px;
    transition: border-color .15s, box-shadow .15s;
}
.cp-topbar__select:focus {
    border-color: #1d4ed8;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(29,78,216,.07);
}
.cp-topbar__select:disabled {
    opacity: .45;
    cursor: not-allowed;
    background-color: #f1f5f9;
}

/* Buttons */
.cp-topbar__actions {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    padding-bottom: 0;
    flex-shrink: 0;
}
.cp-topbar__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 44px;
    padding: 0 20px;
    border-radius: 12px;
    font-family: 'Heebo', sans-serif;
    font-size: .875rem;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
    text-decoration: none;
    white-space: nowrap;
}
.cp-topbar__btn--primary {
    background: #1A2B3C;
    color: #fff;
    box-shadow: 0 4px 12px rgba(26,43,60,.25);
}
.cp-topbar__btn--primary:hover { background: #243548; }
.cp-topbar__btn--secondary {
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #e2e8f0;
}
.cp-topbar__btn--secondary:hover { background: #e2e8f0; color: #1A2B3C; }

/* ── SIDEBAR FORM ───────────────────────────────────────────── */

/* Override sidebar's old filter card to use new compact style */
.cp-sidebar .cp-filter-card {
    position: static;          /* remove sticky — sidebar scroll handles it */
    padding: 1.25rem 1.25rem 1rem;
    margin-bottom: 12px;
    border-radius: 16px;
}

.cp-sidebar .cp-filter-card__title {
    font-size: .8125rem;
    margin-bottom: 1rem;
    padding-bottom: .875rem;
}

/* ── Filter helper text (under insurance label) ── */
.cp-filter-helper {
    font-size: .75rem;
    color: #64748b;
    font-style: italic;
    margin-bottom: .5rem;
    text-align: right;
}

/* ── Check tile grid (service areas) ── */
.cp-check-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.cp-check-tile {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    cursor: pointer;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: .5rem .75rem;
    transition: background .15s, border-color .15s;
}
.cp-check-tile:hover {
    background: #eff6ff;
    border-color: #bfdbfe;
}
.cp-check-tile input[type="checkbox"] {
    order: 2;
    width: 16px;
    height: 16px;
    accent-color: #1e40af;
    cursor: pointer;
    flex-shrink: 0;
}
.cp-check-tile__label {
    order: 1;
    font-size: .8125rem;
    font-weight: 700;
    color: #334155;
}
.cp-check-tile input[type="checkbox"]:checked ~ .cp-check-tile__label { color: #1e40af; }

/* ── Radio pills (municipal experience) ── */
.cp-radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.cp-radio-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    padding: .5rem .625rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    transition: background .15s, border-color .15s;
}
.cp-radio-pill:hover {
    background: #eff6ff;
    border-color: #bfdbfe;
}
.cp-radio-pill input[type="radio"] {
    width: 15px;
    height: 15px;
    accent-color: #1e40af;
    cursor: pointer;
    flex-shrink: 0;
}
.cp-radio-pill__label {
    font-size: .8125rem;
    font-weight: 700;
    color: #334155;
    white-space: nowrap;
}
.cp-radio-pill:has(input:checked) {
    background: #eff6ff;
    border-color: #1e40af;
}
.cp-radio-pill:has(input:checked) .cp-radio-pill__label { color: #1e40af; }

/* ── Sidebar select (tax) ── */
.cp-sidebar-select {
    width: 100%;
    height: 42px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0 14px 0 34px;
    font-family: 'Heebo', sans-serif;
    font-size: .875rem;
    font-weight: 700;
    color: #0f172a;
    direction: rtl;
    text-align: right;
    appearance: none; -webkit-appearance: none;
    cursor: pointer;
    outline: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 10px center;
    background-size: 16px;
    transition: border-color .15s, box-shadow .15s;
}
.cp-sidebar-select:focus {
    border-color: #1d4ed8;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(29,78,216,.07);
}

/* ── Sidebar action buttons ── */
.cp-sidebar-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
    padding: 0 .25rem;
}
.cp-sidebar-actions__submit,
.cp-sidebar-actions__reset {
    width: 100%;
    justify-content: center;
}

/* ── Responsive ── */
@media (max-width: 1023px) {
    .cp-page {
        grid-template-columns: 1fr;
    }
    .cp-sidebar {
        order: -1; /* sidebar above results on mobile */
    }
    .cp-topbar {
        flex-direction: column;
        gap: 10px;
    }
    .cp-topbar__field,
    .cp-topbar__field--search {
        min-width: 100%;
        flex: unset;
    }
    .cp-topbar__actions {
        width: 100%;
    }
    .cp-topbar__btn {
        flex: 1;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ACTIVE FILTER TAGS
   ═══════════════════════════════════════════════════════════════════════════ */

.cp-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0 0 14px;
    min-height: 32px;
}

.cp-active-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px 4px 8px;
    background: #e8f0fe;
    border: 1px solid #aac4f5;
    border-radius: 20px;
    color: #1a4c8b;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    line-height: 1.3;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.cp-active-tag:hover {
    background: #fde8e8;
    border-color: #f5a3a3;
    color: #8c1515;
}

.cp-active-tag__x {
    font-size: 11px;
    opacity: 0.7;
    font-style: normal;
}

.cp-active-filters__clear {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 20px;
    color: #555;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
    margin-right: 2px;
}

.cp-active-filters__clear:hover {
    background: #f5f5f5;
    border-color: #999;
    color: #222;
}

@media (max-width: 680px) {
    .cp-active-filters {
        gap: 5px;
        margin-bottom: 10px;
    }
    .cp-active-tag,
    .cp-active-filters__clear {
        font-size: 12px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SORT BAR — chip buttons (click 1 desc → click 2 asc → click 3 reset)
   ═══════════════════════════════════════════════════════════════════════════ */

.cp-sort-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0 0 14px;
}

.cp-sort-bar__label {
    font-size: 12px;
    font-weight: 700;
    color: #888;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-left: 2px;
}

/* Base chip */
.cp-sort-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 4px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 20px;
    background: #fff;
    color: #374151;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    cursor: pointer;
}

.cp-sort-chip:hover {
    background: #f0f4ff;
    border-color: #2271b1;
    color: #1a4c8b;
}

/* Active chip */
.cp-sort-chip--active {
    background: #1d2327;
    border-color: #1d2327;
    color: #fff;
    font-weight: 600;
}

.cp-sort-chip--active:hover {
    background: #2c3338;
    border-color: #2c3338;
    color: #fff;
}

@media (max-width: 680px) {
    .cp-sort-bar {
        gap: 5px;
        margin-bottom: 10px;
    }
    .cp-sort-chip,
    .cp-sort-bar__label {
        font-size: 12px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR FILTER COLLAPSE
   .cp-filter-card__toggle  — replaces <h4>, acts as the clickable header
   .cp-filter-card__body    — collapsible content wrapper
   .cp-fc-arrow             — chevron that rotates on collapse
   ═══════════════════════════════════════════════════════════════════════════ */

/* Toggle button: reset all button styles, inherit the h4 look */
.cp-filter-card__toggle {
    all: unset;                   /* wipe button UA styles              */
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    font-size: .8125rem;
    font-weight: 900;
    color: #000;
    text-transform: uppercase;
    letter-spacing: -.01em;
    cursor: pointer;
    padding-bottom: .875rem;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 1rem;
    text-align: right;
    direction: rtl;
    /* Push arrow to the far left (opposite side from text+icon in RTL) */
    justify-content: space-between;
}

.cp-filter-card__toggle:hover {
    color: #1e40af;
}

.cp-filter-card__toggle:focus-visible {
    outline: 2px solid #1e40af;
    outline-offset: 3px;
    border-radius: 4px;
}

/* Icon that sits next to the label text inherits the blue colour */
.cp-filter-card__toggle > svg:first-child {
    color: #1e40af;
    flex-shrink: 0;
}

/* Arrow chevron — rotates 180° when collapsed */
.cp-fc-arrow {
    flex-shrink: 0;
    transition: transform 0.22s ease;
    color: #94a3b8;
}

.cp-filter-card__toggle[aria-expanded="false"] .cp-fc-arrow {
    transform: rotate(-90deg);
}

/* Body — smooth open/close with max-height */
.cp-filter-card__body {
    overflow: hidden;
    transition: max-height 0.28s ease, opacity 0.22s ease;
    max-height: 800px;   /* large enough for any filter group */
    opacity: 1;
}

.cp-filter-card__body.is-collapsed {
    max-height: 0;
    opacity: 0;
}

/* =============================================================
   PHASE 4 — UI POLISH  (CSS only, no logic changes)
   ============================================================= */

/* ── 1. Profile sections — add consistent vertical spacing ─── */
.cp-profile__section {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

/* ── 2. Profile section-title — slightly larger, breathing room */
.cp-profile__section-title {
    padding-bottom: .5rem;
    border-bottom: 1px solid #f1f5f9;
}

/* ── 3. Procurement section — fw-list, fw-label, fw-tender, fw-valid ─ */
.cp-profile__fw-label {
    font-size: .75rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .25rem;
}
.cp-profile__fw-list {
    list-style: none;
    padding: 0;
    margin: 0 0 .75rem;
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
}
.cp-profile__fw-list li {
    font-size: .875rem;
    font-weight: 700;
    color: #78350f;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: .25rem .875rem;
}
.cp-profile__fw-tender,
.cp-profile__fw-valid {
    font-size: .875rem;
    color: #475569;
    margin-top: .375rem;
    line-height: 1.6;
}
.cp-profile__fw-tender strong,
.cp-profile__fw-valid strong {
    color: #1e293b;
    font-weight: 700;
}

/* ── 4. Profile framework box — tighten padding slightly ──── */
.cp-profile__framework {
    padding: 1.25rem 1.5rem;
}

/* ── 5. Profile tags — slightly rounder, softer empty state ── */
.cp-profile__tag {
    transition: background .15s, border-color .15s;
}
.cp-profile__tag:hover {
    background: #f1f5f9;
    border-color: #e2e8f0;
}

/* ── 6. Empty-state no-results — icon + better layout ──────── */
.cp-no-results {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 4rem 2rem;
    background: #fff;
    border-radius: 16px;
    border: 1px dashed #e2e8f0;
    color: #94a3b8;
    font-size: .9375rem;
    font-weight: 600;
    letter-spacing: -.01em;
    text-align: center;
}
.cp-no-results::before {
    content: '';
    display: block;
    width: 48px;
    height: 48px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23cbd5e1' stroke-width='1.5'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") center/contain no-repeat;
    opacity: .6;
}

/* ── 7. Card inactive — suppress hover lift/border change ──── */
.cp-card--inactive {
    cursor: default;
}
.cp-card--inactive:hover {
    border-color: #e2e8f0;
    box-shadow: 0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);
    transform: none;
}

/* ── 8. Insurance type tags — hide "לא הוזן" on inactive cards */
.cp-card--inactive .cp-ins-tag--empty {
    display: none;
}
/* Also hide the entire ins-types row when only empty tag would show */
.cp-card--inactive .cp-card__ins-types:empty,
.cp-card--inactive .cp-card__ins-types:not(:has(.cp-ins-tag:not(.cp-ins-tag--empty))) {
    display: none;
}

/* ── 9. Card CTA button — focus-visible ring ──────────────── */
.cp-card__cta:focus-visible {
    outline: 2px solid #1d4ed8;
    outline-offset: 3px;
}

/* ── 10. Sort bar — better vertical rhythm with active filters ─ */
.cp-sort-bar {
    padding: 2px 0;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 18px;
}

/* ── 11. Active filter tags — tighten RTL spacing ─────────── */
.cp-active-filters {
    padding: 2px 0;
}
.cp-active-tag {
    font-size: 12.5px;
    line-height: 1.4;
}

/* ── 12. Topbar — medium screen stacking fix (768–1023) ────── */
@media (min-width: 768px) and (max-width: 1023px) {
    .cp-topbar {
        gap: 10px;
    }
    .cp-topbar__field {
        min-width: 160px;
    }
    .cp-topbar__field--search {
        min-width: 200px;
    }
}

/* ── 13. Filter sidebar collapse — taller max-height ──────── */
.cp-filter-card__body {
    max-height: 1200px; /* was 800px — prevents clipping tall groups */
}

/* ── 14. Sidebar filter card — subtle section dividers ──────── */
.cp-sidebar .cp-filter-sec {
    border-bottom: 1px solid #f8fafc;
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
}
.cp-sidebar .cp-filter-sec:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

/* ── 15. Profile back-link — hover arrow nudge ─────────────── */
.cp-profile__back-link svg {
    transition: transform .15s;
    flex-shrink: 0;
}
.cp-profile__back-link:hover svg {
    transform: translateX(3px);
}

/* ── 16. Profile header — logo shadow on verified ────────────── */
.cp-profile__logo-wrap {
    transition: box-shadow .2s;
}
.cp-profile__logo-wrap:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
}

/* ── 17. Profile sidebar checks — subtle hover on each row ─── */
.cp-profile__check {
    padding: .5rem .75rem;
    border-radius: 10px;
    transition: background .15s;
}
.cp-profile__check:hover {
    background: #f8fafc;
}

/* ── 18. Pagination — current page ring ────────────────────── */
.cp-pag__item--on {
    box-shadow: 0 0 0 2px rgba(26,43,60,.2);
}

/* ── 19. Card ribbon — softer shadow on inactive ────────────── */
.cp-card--inactive .cp-card__ribbon {
    display: none;
}

/* ── 20. Topbar submit button — ensure full height on all browsers */
.cp-topbar__btn {
    line-height: 1;
}

/* ── 21. Profile contact items — link icon colour on hover ─── */
.cp-profile__contact-item svg {
    transition: stroke .15s;
}
.cp-profile__contact-item:hover svg {
    stroke: #2563eb;
}

/* ── 22. Card verified mark — slightly bolder colour ─────────── */
.cp-card__verified-mark {
    color: #047857;
}

/* ── 23. Topbar — search icon aligns with input height change ── */
@media (max-width: 767px) {
    .cp-topbar__icon {
        right: 12px;
    }
}


/* =============================================================
   VERIFIED CARD v2 — Phase 4 UI Polish
   All rules scoped to .cp-card--v2 so existing unverified/
   inactive card styles are completely unaffected.
   ============================================================= */

/* ── Outer card tweaks for v2 ───────────────────────────────── */
.cp-card--v2 {
    cursor: pointer;
    min-height: 260px;          /* slightly taller */
}

/* ── Layout wrapper: two columns ────────────────────────────── */
.cp-v2__body {
    padding: 1.25rem 1.25rem 1rem;
    display: flex;
    flex-direction: row;        /* LEFT col | RIGHT col */
    align-items: stretch;
    gap: 0;
}

/* ── LEFT COLUMN: logo + insurance + ins-types + CTA ────────── */
.cp-v2__left-col {
    flex-shrink: 0;
    width: 180px;               /* fixed left column width */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    padding-left: 1rem;
    border-left: 1px solid #f1f5f9;
    text-align: center;
}

.cp-v2__logo-wrap {
    width: 88px;
    height: 88px;
    border-radius: 10px;
    border: 1px solid #f1f5f9;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 6px;
    transition: box-shadow .2s;
    flex-shrink: 0;
}
.cp-card--v2:hover .cp-v2__logo-wrap {
    box-shadow: 0 4px 16px rgba(0,0,0,.12);
}
.cp-v2__logo-wrap img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Insurance amount — left col variant */
.cp-v2__ins-amount--left {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}
.cp-v2__ins-amount--left svg { stroke: #059669; flex-shrink: 0; }
.cp-v2__ins-figure {
    font-family: 'Heebo', sans-serif;
    font-size: 1.125rem;
    font-weight: 900;
    color: #059669;
    line-height: 1;
    direction: ltr;             /* keep ₪ number LTR */
}

/* Insurance type tags — left col */
.cp-v2__ins-types-left {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
}

/* CTA — left col: full width */
.cp-v2__cta--left {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    padding: .625rem .75rem;
    background: #1e293b;
    color: #fff;
    border-radius: 10px;
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    font-weight: 800;
    white-space: normal;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0,0,0,.18);
    border: 1px solid rgba(255,255,255,.05);
    transition: background .15s, transform .1s;
    margin-top: auto;           /* push to bottom of left col */
}
.cp-v2__cta--left:hover { background: #0f172a; }
.cp-v2__cta--left:active { transform: scale(.98); }
.cp-v2__cta--left svg { flex-shrink: 0; opacity: .75; }

/* ── RIGHT COLUMN: all content ──────────────────────────────── */
.cp-v2__right-col {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding-right: 1rem;
    min-width: 0;               /* prevent overflow */
}

/* ── A: Identity row (name + meta only — no logo) ───────────── */
.cp-v2__identity {
    padding-top: .125rem;
}
.cp-v2__identity-logo {
    width: 200px !important;
    height: 72px !important;
    max-width: 200px !important;
    min-width: 0 !important;
    border-radius: 8px;
    border: 1px solid #f1f5f9;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: visible !important;
    padding: 4px;
    flex-shrink: 0;
}
.cp-v2__identity-logo img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: 100% !important;
    object-fit: contain !important;
}
.cp-v2__identity-text {
    text-align: right;
}
.cp-v2__name {
    font-family: 'Assistant', sans-serif;
    font-size: 1.375rem;
    font-weight: 800;
    color: #1e293b;
    line-height: 1.15;
    margin-bottom: 4px;
    letter-spacing: -.01em;
}
.cp-v2__meta-line {
    font-family: 'Assistant', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    letter-spacing: .01em;
}
.cp-v2__sep {
    color: #cbd5e1;
    margin: 0 4px;
}
.cp-v2__areas {
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: 3px;
    font-family: 'Assistant', sans-serif;
}

/* ── B: Trust badges ────────────────────────────────────────── */
.cp-v2__trust-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .125rem 0;
}
.cp-v2__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

/* Badge pills */
.cp-v2-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 6px;
    border: 1px solid;
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    line-height: 1;
}
.cp-v2-badge svg { flex-shrink: 0; }

.cp-v2-badge--green  { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.cp-v2-badge--green  svg { stroke: #059669; }
.cp-v2-badge--blue   { background: #eff6ff; border-color: #bfdbfe; color: #1e3a8a; }
.cp-v2-badge--blue   svg { stroke: #3b82f6; }
.cp-v2-badge--yellow { background: #fffbeb; border-color: #fde68a; color: #78350f; }
.cp-v2-badge--yellow svg { stroke: #C5A059; }
.cp-v2-badge--orange { background: #fff7ed; border-color: #fed7aa; color: #7c2d12; }
.cp-v2-badge--orange svg { stroke: #ea580c; }

/* ── C: Meta row — experience + client logos ────────────────── */
.cp-v2__meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}
.cp-v2__exp {
    font-family: 'Assistant', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    margin-left: 5px;
}
.cp-v2__exp strong {
    font-weight: 800;
    color: #1e293b;
}
.cp-v2__clients {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    padding-right: 5px;
}
.cp-v2__clients-label {
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .03em;
    white-space: nowrap;
}
.cp-v2__client-logos {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}
.cp-v2__client-logo {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cp-v2__client-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .65;
    transition: filter .15s, opacity .15s;
}
.cp-card--v2:hover .cp-v2__client-logo img {
    filter: grayscale(0);
    opacity: 1;
}
.cp-v2__client-extra {
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 4px 8px;
    white-space: nowrap;
}

/* ── D: Punchline — 2-line clamp ~90 chars ──────────────────── */
.cp-v2__punchline {
    font-family: 'Assistant', sans-serif;
    font-size: .875rem;
    color: #475569;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-align: right;
    margin: 0;
    max-width: 58ch;            /* ~90 chars per line */
    word-break: break-word;
}

/* ── E: Footer row — info chips only (CTA moved to left col) ── */
.cp-v2__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    border-top: 1px solid #f1f5f9;
    padding-top: .75rem;
    margin-top: auto;           /* push to bottom of right col */
}
.cp-v2__footer-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}
.cp-v2__info-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    background: #f8fafc;
    border: 1px solid #f1f5f9;
    border-radius: 5px;
    padding: 4px 9px;
    white-space: nowrap;
    text-decoration: none;
}
.cp-v2__info-chip svg { stroke: #94a3b8; flex-shrink: 0; }
.cp-v2__info-chip--link { color: #1d4ed8; }
.cp-v2__info-chip--link svg { stroke: #3b82f6; }
.cp-v2__info-chip--link:hover { background: #eff6ff; border-color: #bfdbfe; }

/* ── Responsive: keep desktop layout down to 768px ──────────── */
@media (max-width: 767px) {
    .cp-v2__body        { flex-direction: column; }
    .cp-v2__left-col    { width: 100%; flex-direction: row; flex-wrap: wrap;
                          border-left: none; border-bottom: 1px solid #f1f5f9;
                          padding-left: 0; padding-bottom: .75rem; }
    .cp-v2__right-col   { padding-right: 0; }
    .cp-v2__cta--left   { width: auto; flex: 1; }
    .cp-v2__name        { font-size: 1.2rem; }
    .cp-v2__ins-figure  { font-size: 1rem; }
}

/* ── Pending card ── */
.cp-card--pending,
.cp-card--v2.cp-card--pending { cursor: pointer; min-height: 0; }
.cp-card--pending .cp-v2__body { align-items: stretch; }
.cp-card--pending .cp-v2__right-col { justify-content: space-between; }
.cp-card__ribbon--pending {
    background: #64748b !important;
    color: #fff !important;
    letter-spacing: .03em;
    text-transform: none !important;
}
.cp-card__ribbon--conditional {
    background: linear-gradient(135deg, #F59E0B, #B45309) !important;
    color: #fff !important;
    letter-spacing: .03em;
    text-transform: none !important;
}
.cp-card--conditional .cp-v2__pending-status span:last-child {
    color: #B45309;
}
.cp-v2__left-col--pending {
    flex-shrink: 0;
    width: 190px;
    border-right: 1px solid #f1f5f9;
    order: 2;
}

.cp-v2__pending-status {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 100%;
    font-family: 'Assistant', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-align: center;
    padding: 1rem .5rem;
}
.cp-v2__pending-status span:first-child {
    font-size: 28px;
}

/* ── cp-sort-row: sort chips + active tags on one line ── */
.cp-sort-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
    gap: 6px;
    padding: 6px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    margin-bottom: 12px;
    overflow-x: auto;
}
.cp-sort-row .cp-sort-bar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 4px;
    margin: 0;
    flex-shrink: 0;
}
.cp-sort-row .cp-active-filters {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 5px;
    margin: 0;
    min-height: 0;
    padding-right: 8px;
    border-right: 1px solid #e2e8f0;
    margin-right: 2px;
    flex-shrink: 0;
}

/* ── Reduce gap between filter bar and sort row ── */
.cp-topbar-wrap { padding-bottom: 0.25rem; }

/* ── Tighten gap: sort-row → cards ── */
.cp-main { gap: 0; }
.cp-sort-row { margin-bottom: 16px; }
.cp-pagination { margin-top: 2rem; }

/* ── Results label before active filters ── */
.cp-sort-row__results-label {
    font-family: 'Assistant', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    white-space: nowrap;
    flex-shrink: 0;
    padding-right: 6px;
    border-right: 1px solid #e2e8f0;
    margin-right: 2px;
}

/* ── Sort chips: no border/bg on inactive, arrow only on active ── */
.cp-sort-row .cp-sort-chip {
    background: transparent;
    border-color: transparent;
    color: #64748b;
    font-size: 12px;
    padding: 3px 8px;
    font-weight: 600;
}
.cp-sort-row .cp-sort-chip:hover {
    background: #f1f5f9;
    border-color: transparent;
    color: #1e293b;
}
.cp-sort-row .cp-sort-chip--active {
    background: transparent;
    border-color: transparent;
    color: #1e293b;
    font-weight: 800;
}
.cp-sort-row .cp-sort-chip--active:hover {
    background: #f1f5f9;
    border-color: transparent;
    color: #1e293b;
}

/* ── Toolbar scrollbar: subtle, thin ── */
.cp-sort-row {
    scrollbar-width: thin;
    scrollbar-color: #e2e8f0 transparent;
}
.cp-sort-row::-webkit-scrollbar {
    height: 3px;
}
.cp-sort-row::-webkit-scrollbar-track {
    background: transparent;
}
.cp-sort-row::-webkit-scrollbar-thumb {
    background: #e2e8f0;
    border-radius: 10px;
}
.cp-sort-row::-webkit-scrollbar-thumb:hover {
    background: #cbd5e1;
}

/* ═══════════════════════════════════════════════════════════
   LAYOUT STABILIZATION — desktop archive
   Only locks widths / overflow / flex constraints.
   Zero changes to colors, spacing, card content, or logic.
   ═══════════════════════════════════════════════════════════ */

/* 1. Lock page grid columns — sidebar fixed, main fills rest */
@media (min-width: 1024px) {
    .cp-page {
        grid-template-columns: 280px 1fr;
    }
}

/* 2. Sidebar — fixed width, never shrinks or grows */
.cp-sidebar {
    width: 280px;
    min-width: 280px;
    max-width: 280px;
    box-sizing: border-box;
}

/* 3. Main column — never overflow its grid cell */
.cp-main {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* 4. Topbar wrap — constrained to main column */
.cp-topbar-wrap {
    max-width: 100%;
    box-sizing: border-box;
}

/* 5. Cards container — never wider than main */
.cp-cards {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* 6. Card — never push outside container */
.cp-card {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

/* 7. v2 card body — left col never shrinks below defined width */
.cp-v2__left-col {
    flex-shrink: 0;
    box-sizing: border-box;
}

/* 8. v2 right col — always min-width 0, text wraps safely */
.cp-v2__right-col {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

/* 9. Identity row — logo never stretches layout */
.cp-v2__identity {
    min-width: 0;
    overflow: hidden;
}
.cp-v2__identity-logo img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* 10. Name and text — clamp long strings */
.cp-v2__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.cp-v2__meta-line,
.cp-v2__areas {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

/* 11. Sort row — never wider than main */
.cp-sort-row {
    max-width: 100%;
    box-sizing: border-box;
}

/* 12. Badges/chips row — wraps safely */
.cp-v2__badges-meta-row {
    min-width: 0;
    max-width: 100%;
}

/* ── Sort-row fixed height stabilization ── */
.cp-sort-row { min-height: 44px; }

/* ── אזורי שירות — last option spans full width ── */
.cp-check-grid .cp-check-tile:last-child {
    grid-column: 1 / -1;
}

/* ── ארצי — centered within full-width span ── */
.cp-check-grid .cp-check-tile:last-child {
    justify-self: center;
    width: 50%;
}

/* ── אזורי שירות — force right-align all labels ── */
.cp-check-grid .cp-check-tile {
    justify-content: flex-end;
}
.cp-check-grid .cp-check-tile .cp-check-tile__label {
    text-align: right;
    flex: 1;
}

/* ── מסלול רכש — force right-align labels ── */
.cp-check-item span {
    text-align: right;
    flex: 1;
}

/* ── כיסוי ביטוחי slider polish ── */

/* 1. Hide duplicate helper text — keep only cp-range-hdr label */
.cp-filter-helper { display: none; }

/* 2. Value pill — larger, more prominent */
.cp-range-val {
    font-size: 17px;
    font-weight: 600;
    padding: .2rem .9rem;
}

/* 3. Slider full width */
.cp-range {
    width: 100%;
    display: block;
}

/* 4. Replace green with brand blue */
.cp-range--green { accent-color: #1e40af; }
.cp-range--green::-webkit-slider-thumb { background: #1e40af; }

/* ── Insurance slider layout fix ── */
.cp-range-hdr {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .75rem;
    padding: 0 2px;
    gap: 8px;
}
.cp-ins-min {
    color: #1e293b;
    font-style: normal;
    white-space: nowrap;
    flex-shrink: 0;
}
.cp-range-val {
    color: #1e293b;
    background: #f1f5f9;
    border-color: #e2e8f0;
    white-space: nowrap;
    flex-shrink: 0;
}
.cp-range.cp-range--green,
.cp-range {
    width: 100%;
    display: block;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* ── Insurance slider — fix thumb clipping ── */
.cp-filter-card__body {
    overflow: visible;
}
.cp-filter-card__body.is-collapsed {
    overflow: hidden;
}

/* ── Insurance slider — dynamic track (JS sets inline background) ── */
.cp-range {
    border-radius: 9999px;
}

/* ── Hero padding reduction ── */
.cp-hero { padding-top: 2.75rem; padding-bottom: 1.25rem; }

/* ── Card refinements ── */
.cp-card__topbar { height: 5px; }
.cp-v2__punchline {
    -webkit-line-clamp: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
    overflow: hidden;
}

/* ── Card bottom spacing reduction ── */
.cp-v2__body { padding-bottom: 0.625rem; }

/* ═══════════════════════════════════════════════════════════
   PAGINATION CONSISTENCY — pages 2+ match page 1
   Only defensive CSS — no redesign, no layout change.
   ═══════════════════════════════════════════════════════════ */

/* Left column: always fixed width, never collapses */
.cp-v2__body > .cp-v2__left-col {
    width: 180px !important;
    min-width: 180px !important;
    flex-shrink: 0 !important;
}
.cp-v2__body > .cp-v2__left-col--pending {
    width: 190px !important;
    min-width: 190px !important;
    flex-shrink: 0 !important;
}

/* Logo container: fixed dimensions even when empty */
.cp-v2__identity-logo {
    min-height: 72px !important;
    min-width: 100px !important;
}

/* Punchline: reserve height even when empty string */
.cp-v2__punchline {
    min-height: 1.4em;
}

/* Right col: always takes remaining space, never overflows */
.cp-v2__body > .cp-v2__right-col {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

/* Card: consistent min-height so short-content cards don't collapse */
.cp-card.cp-card--v2 {
    min-height: 160px;
}

/* ── Inactive card — status label + message ── */
.cp-card__inactive-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 3px 8px;
    align-self: flex-start;
}
.cp-card__inactive-label svg { stroke: #94a3b8; flex-shrink: 0; }

.cp-card__inactive-msg {
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: 'Assistant', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #94a3b8;
    font-style: italic;
    margin-top: auto;
}
.cp-card__inactive-msg svg { stroke: #94a3b8; flex-shrink: 0; }

/* ── Inactive card — same height as pending (content-driven) ── */
.cp-card--inactive.cp-card--v2 { min-height: 0; }

/* ── Nav height reduction ~15% + clean link style ── */
.cp-nav { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.cp-nav__actions { gap: 2rem; }
.cp-nav__link { font-size: .8125rem; font-weight: 600; text-transform: none; letter-spacing: 0; }

/* ── Hero padding reduction ── */
.cp-hero { padding-top: 1.25rem; padding-bottom: 0.75rem; }

/* ── Hero title: reduce font ~12% + max-width ── */
.cp-hero__title {
    font-size: clamp(1.55rem, 3.5vw, 2.625rem);
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

/* ── Hero title: further reduce ~6% + sub darker ── */
.cp-hero__title { font-size: clamp(1.45rem, 3.25vw, 2.45rem); }
.cp-hero__sub { color: #475569; }

/* ── Hero→filters spacing -10px, filters→sort-row -8px ── */
.cp-hero { padding-bottom: 0.5rem; }
.cp-topbar-wrap { padding-bottom: 0; }

/* ── Topbar buttons: reduce height ~2px ── */
.cp-topbar__btn { height: 40px; }

/* ── Sort chips: darker text for contrast ── */
.cp-sort-row .cp-sort-chip { color: #475569; }

/* ── Nav: reduce height ~8px ── */
.cp-nav { padding-top: 0.5rem; padding-bottom: 0.5rem; }

/* ── Nav: reduce height further ~6-8px ── */
.cp-nav { padding-top: 0.25rem; padding-bottom: 0.25rem; }

/* ── Hero typography: title -10%, sub -8% ── */
.cp-hero__title { font-size: clamp(1.3rem, 2.925vw, 2.2rem); }
.cp-hero__sub   { font-size: clamp(0.92rem, 1.84vw, 1.265rem); }

/* ── Sort chip contrast +8%, hero padding -~8px ── */
.cp-sort-row .cp-sort-chip { color: #334155; }
.cp-hero { padding-top: 0.9rem; padding-bottom: 0.25rem; }

/* ── UI refinements ── */
/* 1. Sort label darker */
.cp-sort-row__results-label { color: #64748b; }
/* 2. Restore hero padding-top before last fix */
.cp-hero { padding-top: 1.25rem; padding-bottom: 0.5rem; }
/* 3. Reduce sort-row→cards gap by 2-3px */
.cp-sort-row { margin-bottom: 13px; }
/* 4. Reduce topbar→sort-row and topbar→sidebar gap */
.cp-topbar-wrap { padding-bottom: 0; margin-bottom: -4px; }

/* ── Topbar→sort-row gap -7px ── */
.cp-topbar-wrap { margin-bottom: -11px; }

/* ── Nav: reduce height further 4-5px ── */
.cp-nav { padding-top: 0.1rem; padding-bottom: 0.1rem; }

/* ── Footer minimal ── */
.cp-footer {
    margin-top: 40px;
    padding: 1.5rem 2rem;
    text-align: center;
    background: transparent;
    border-top: 1px solid #e5e7eb;
}
.cp-footer__row1,
.cp-footer__row2 {
    font-family: 'Assistant', sans-serif;
    font-size: 13px;
    color: #94a3b8;
    margin: 0 0 6px;
}
.cp-footer__row3 {
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    color: #cbd5e1;
    margin: 0;
}
.cp-footer__link {
    color: inherit;
    text-decoration: none;
}
.cp-footer__link:hover { color: #64748b; }
.cp-footer__sep { margin: 0 6px; color: #e2e8f0; }

/* ── Footer refinements ── */
.cp-footer__row1,
.cp-footer__row2 { color: #6b7280; font-size: 13px; }
.cp-footer__row3 { color: #9ca3af; }
.cp-footer__link { color: inherit; }
.cp-footer__sep { margin: 0 4px; }
.cp-footer__row1 a[href^="mailto:"],
.cp-footer__row1 a[href^="tel:"] { white-space: nowrap; }

/* ── Footer dark redesign ── */
.cp-footer {
    margin-top: 40px;
    padding: 24px 2rem;
    background: #1f3447;
    border-top: none;
    text-align: center;
}
.cp-footer__row1,
.cp-footer__row2 {
    font-size: 13px;
    color: #cbd5e1;
    margin: 0 0 5px;
}
.cp-footer__row3 {
    font-size: 11px;
    color: #64748b;
    margin: 0;
}
.cp-footer__link { color: #ffffff; text-decoration: none; }
.cp-footer__link:hover { color: #cbd5e1; }
.cp-footer__sep { margin: 0 4px; color: #334155; }
.cp-footer__row1 > *,
.cp-footer__row2 > * { white-space: nowrap; }

/* ── Footer final ── */
.cp-footer {
    margin-top: 40px;
    padding: 16px 0;
    background: #1f3447;
    border-top: none;
    text-align: center;
}
.cp-footer__row1 {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-family: 'Assistant', sans-serif;
    font-size: 13px;
    color: #cbd5e1;
    margin: 0 0 5px;
}
.cp-footer__row2 {
    font-family: 'Assistant', sans-serif;
    font-size: 13px;
    color: #cbd5e1;
    margin: 0 0 5px;
}
.cp-footer__row3 {
    font-family: 'Assistant', sans-serif;
    font-size: 11px;
    color: #475569;
    margin: 0;
}
.cp-footer__link { color: #ffffff; text-decoration: none; }
.cp-footer__link:hover { color: #ffffff; }
.cp-footer__sep { color: #334155; margin: 0; }
.cp-footer__nowrap { white-space: nowrap; }

/* ── Footer: match nav color + tight line spacing ── */
.cp-footer { background: #243547; padding: 14px 0; }
.cp-footer__row1 { margin: 0 0 3px; font-size: 12px; }
.cp-footer__row2 { margin: 0 0 3px; font-size: 12px; }
.cp-footer__row3 { font-size: 10px; }

/* ── Footer fix: force colors + tight spacing ── */
.cp-footer                          { background: #1f3447 !important; padding: 16px 0 !important; }
.cp-footer,
.cp-footer p,
.cp-footer span                     { color: #cbd5e1 !important; line-height: 1.4 !important; }
.cp-footer a,
.cp-footer .cp-footer__link         { color: #ffffff !important; }
.cp-footer p                        { margin: 0 !important; }
.cp-footer__row1                    { row-gap: 8px !important; column-gap: 12px !important; }
.cp-footer__row2,
.cp-footer__row3                    { margin-top: 8px !important; }
.cp-footer__sep                     { color: #334155 !important; margin: 0 !important; }

/* ── Footer background force ── */
footer.cp-footer,
body footer.cp-footer,
.cp-wrap footer.cp-footer { background-color: #1f3447 !important; background: #1f3447 !important; }

/* ── Footer: kill opacity that was making bg transparent ── */
.cp-footer,
.cp-footer:hover { opacity: 1 !important; filter: none !important; }

/* ── Footer compact ── */
.cp-footer                { padding: 14px 0 !important; }
.cp-footer__row1          { line-height: 1.35 !important; row-gap: 6px !important; }
.cp-footer__row2,
.cp-footer__row3          { line-height: 1.35 !important; margin-top: 6px !important; }

/* ── Footer: tighten row spacing ── */
.cp-footer__row1 { margin-bottom: 2px !important; }
.cp-footer__row2 { margin-top: 2px !important; margin-bottom: 2px !important; }
.cp-footer__row3 { margin-top: 2px !important; }

/* ── Footer: kill flex gap that was causing large spacing ── */
.cp-footer { gap: 0 !important; }
.cp-footer__row1 { margin-bottom: 3px !important; }
.cp-footer__row2 { margin-bottom: 3px !important; }
.cp-footer__row3 { margin-top: 0 !important; }

/* ── Footer: kill gap from original flex container ── */
.cp-footer { gap: 4px !important; padding: 12px 0 !important; }
.cp-footer p,
.cp-footer__row1,
.cp-footer__row2,
.cp-footer__row3 { margin: 0 !important; line-height: 1.3 !important; }

/* ── Profile: identity line ── */
.cp-profile__identity-line {
    font-family: 'Assistant', sans-serif;
    font-size: .8rem; font-weight: 700;
    color: #94a3b8;
    letter-spacing: .04em;
    margin: .25rem 0 .5rem;
}

/* ── Profile: trust status ── */
.cp-profile__trust-status {
    display: inline-flex; align-items: center; gap: .4rem;
    background: #f0fdf4; border: 1px solid #bbf7d0;
    border-radius: 8px; padding: .3rem .75rem;
    margin-bottom: .75rem;
}
.cp-profile__trust-status svg { stroke: #16a34a; flex-shrink: 0; }
.cp-profile__trust-label {
    font-size: .8rem; font-weight: 900; color: #15803d;
    font-family: 'Assistant', sans-serif;
}
.cp-profile__trust-date {
    font-size: .75rem; font-weight: 600; color: #64748b;
    font-family: 'Assistant', sans-serif;
    border-right: 1px solid #bbf7d0; padding-right: .4rem; margin-right: .1rem;
}

/* ── Profile: action buttons ── */
.cp-profile__actions {
    display: flex; flex-direction: column; gap: .5rem;
    flex-shrink: 0; margin-right: auto;
}
@media (min-width: 768px) {
    .cp-profile__header { align-items: flex-start; }
}
.cp-profile__action-btn {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .45rem .9rem;
    border-radius: 8px;
    font-family: 'Assistant', sans-serif;
    font-size: .8rem; font-weight: 700;
    color: #1e293b;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    transition: background .15s, border-color .15s;
    white-space: nowrap;
}
.cp-profile__action-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.cp-profile__action-btn svg { stroke: #64748b; }

/* ── Profile: fw-meta ── */
.cp-profile__fw-meta {
    font-size: .8rem; color: #64748b;
    margin-top: .5rem;
    font-family: 'Assistant', sans-serif;
}

/* ── Profile: client logos no hover animation ── */
.cp-profile__client-item:hover .cp-profile__client-logo { filter: grayscale(1); border-color: #f1f5f9; }
