/* Companies Registration Dashboard layout */
.dashboard-toolbar{ gap:.5rem; contain: content; }
.dashboard-toolbar .filters{ align-items: stretch; min-width: 0; }
.dashboard-toolbar .search-group{ min-width: 300px; }
.dashboard-toolbar .where-group{ min-width: 220px; }
.dashboard-toolbar .city-group{ min-width: 180px; }
.input-group-text i{ width:1rem; text-align:center; }
.view-title { display:flex; align-items:center; gap:.5rem; }
/* Make the page title lighter and quicker to paint on this view */
.companies-showcase .view-title{ font-size: clamp(1.2rem, 0.9rem + 1.2vw, 1.6rem) !important; line-height: 1.25; font-weight: 600 !important; letter-spacing: .1px; }
/* Reduce initial paint cost: use medium weight first; base layout may override later. */
.companies-showcase .view-title{ font-weight:600 !important; text-rendering: optimizeLegibility; }
@media (prefers-reduced-motion: no-preference){
  .companies-showcase:where(body *) .view-title{ font-weight:600 !important; }
}

/* Visually distinct filter panel */
.filters-panel{ background: var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.75rem; padding:.75rem; box-shadow:0 .15rem .5rem rgba(0,0,0,.05); will-change: contents; }
body.bg-dark .filters-panel{ background:#1e1f21; border-color: rgba(255,255,255,.10); }

.companies-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); contain-intrinsic-size: 420px 320px; content-visibility:auto; width:100%; max-width:100%; overflow-x:hidden; }

.company-card{ position:relative; display:flex; flex-direction:column; border-radius:1.5rem; border:1px solid rgba(148,163,184,0.18); background: rgba(255,255,255,0.92); box-shadow:0 1.1rem 2.4rem rgba(15, 23, 42, 0.12); overflow:hidden; transition: transform 0.18s ease; min-height:100%;
  --company-card-primary: #2563eb;
  --company-card-secondary: #60a5fa;
  --company-card-badge-text: #0f172a;
}
.company-card:hover{ transform: translateY(-4px); box-shadow:0 1.2rem 2.6rem rgba(15, 23, 42, 0.18); }

.company-card__link{ display:flex; flex-direction:column; flex:1 1 auto; color:inherit; text-decoration:none; min-height:0; }
.company-card__link:hover{ text-decoration:none; }

.company-card__media{ position:relative; display:-webkit-inline-box; display:flex; flex-direction:column; align-items:center; justify-content:center; gap: clamp(0.6rem, 1.4vw, 0.85rem); padding: clamp(1rem, 3.2vw, 1.6rem) clamp(1.1rem, 3.4vw, 1.6rem); border-bottom:1px solid rgba(148,163,184,0.2); text-align:center;
  background: linear-gradient(145deg, var(--company-card-primary), var(--company-card-secondary)); width:100%; }
.company-card__media::before{ content:''; position:absolute; inset:-35% -25% auto 45%; aspect-ratio:1/1; background: radial-gradient(circle, rgba(255,255,255,0.38), transparent 68%); pointer-events:none; }

.company-card__media-content{ width:100%; display:flex; align-items:center; justify-content:flex-start; gap: clamp(0.75rem, 2.4vw, 1.2rem); z-index:1; }
.company-card__identity{ display:flex; flex-direction:column; align-items:flex-start; gap:0.55rem; flex:1 1 auto; min-width:0; text-align:left; }

.company-card__logo{ width: clamp(70px, 13vw, 90px); height: clamp(70px, 13vw, 90px); border-radius: 1.25rem; background:#ffffff; border:1px solid rgba(148,163,184,0.28); display:flex; align-items:center; justify-content:center; box-shadow:0 16px 30px rgba(15, 23, 42, 0.18); z-index:1; }
.company-card__logo .company-logo{ width:100%; height:100%; object-fit:contain; }

.company-card__badge{ position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:flex-start; padding:0.45rem 1.4rem; border-radius:999px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; font-size:0.82rem; background: rgba(255,255,255,0.92); border:1px solid var(--company-card-primary); color: var(--company-card-badge-text); box-shadow:0 14px 28px rgba(15, 23, 42, 0.15); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1 1 auto; min-width:0; }

.company-card__identity .company-card__actions{ width:100%; }
.company-card__actions{ display:flex; align-items:center; gap:0.35rem; flex:0 0 auto; justify-content:flex-start; min-width:0; }

.company-card__action{ display:inline-flex; align-items:center; gap:0.3rem; padding:0.34rem 0.7rem; border-radius:999px; font-size:0.7rem; font-weight:600; text-decoration:none; border:1px solid rgba(15, 23, 42, 0.16); background: rgba(255,255,255,0.88); color: rgba(15, 23, 42, 0.78); min-width:0; max-width:100%; }
.company-card__action span{ display:inline-block; max-width:8.5rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.company-card__action i{ font-size:0.75rem; }
.company-card__action:hover{ text-decoration:none; box-shadow:0 8px 18px rgba(15, 23, 42, 0.14); }

.company-card__action--website{ border-color: var(--company-card-primary); color: var(--company-card-primary); }
.company-card__action--website:hover{ background: var(--company-card-primary); color:#ffffff; }

.company-card__action--map{ border-color: rgba(15, 23, 42, 0.18); color: rgba(15, 23, 42, 0.75); }
.company-card__action--map:hover{ background: rgba(15, 23, 42, 0.85); color:#ffffff; }

.company-card__action--muted{ border-color: rgba(148,163,184,0.32); color: rgba(15, 23, 42, 0.55); background: rgba(255,255,255,0.7); cursor: default; box-shadow:none; }
.company-card__action--muted:hover{ background: rgba(255,255,255,0.7); color: rgba(15, 23, 42, 0.55); }

.company-card__body{ padding: clamp(1.1rem, 2.8vw, 1.5rem); display:flex; flex-direction:column; gap:0.55rem; flex:1 1 auto; }
.company-card__meta{ display:flex; flex-wrap:wrap; gap:0.45rem; align-items:center; color: rgba(15, 23, 42, 0.6); }
.company-card__meta-item{ display:inline-flex; align-items:center; gap:0.25rem; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.company-card__meta-item i{ color: inherit; opacity:0.8; }
.company-card__meta-dot{ color: rgba(15, 23, 42, 0.35); font-weight:700; }
.company-card__description{ color:var(--bs-secondary-color); margin-bottom:0; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; }

.company-card__status{ display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:0.15rem; }
.company-card__status .badge{ font-size:0.7rem; padding:0.28rem 0.6rem; border-radius:999px; }

body.bg-dark .company-card{ background: rgba(16,24,40,0.9); border-color: rgba(148,163,184,0.42); color: rgba(226,232,240,0.94); box-shadow:0 1.25rem 2.6rem rgba(2,6,23,0.62); }
body.bg-dark .company-card__media{ border-bottom-color: rgba(100,116,139,0.45); background: linear-gradient(145deg, var(--company-card-primary), var(--company-card-secondary)); background: linear-gradient(145deg, color-mix(in srgb, var(--company-card-primary) 68%, #000), color-mix(in srgb, var(--company-card-secondary) 65%, #000)); }
body.bg-dark .company-card__badge{ background: rgba(15,23,42,0.8); border-color: var(--company-card-primary); color: #e2e8f0; box-shadow:0 16px 32px rgba(2,6,23,0.6); border-color: color-mix(in srgb, var(--company-card-primary) 65%, rgba(148,163,184,0.4)); }
body.bg-dark .company-card__actions{ gap:0.4rem; }
body.bg-dark .company-card__action{ background: rgba(15,23,42,0.78); border-color: rgba(148,163,184,0.4); color: rgba(226,232,240,0.85); }
body.bg-dark .company-card__action--website{ border-color: color-mix(in srgb, var(--company-card-primary) 70%, rgba(148,163,184,0.35)); color: color-mix(in srgb, var(--company-card-primary) 80%, #e2e8f0); }
body.bg-dark .company-card__action--website:hover{ background: var(--company-card-primary); color:#0b1120; }
body.bg-dark .company-card__action--map{ border-color: rgba(148,163,184,0.38); color: rgba(226,232,240,0.85); }
body.bg-dark .company-card__action--map:hover{ background: rgba(148,163,184,0.3); color:#0b1120; }
body.bg-dark .company-card__action--muted{ border-color: rgba(148,163,184,0.32); color: rgba(226,232,240,0.7); background: rgba(15,23,42,0.7); }
body.bg-dark .company-card__meta{ color: rgba(226,232,240,0.78); }
body.bg-dark .company-card__meta-dot{ color: rgba(148,163,184,0.55); }
body.bg-dark .company-card__description{ color: rgba(226,232,240,0.75); }

body.bg-dark .company-card__status .badge{ background: rgba(15,23,42,0.75); color: rgba(226,232,240,0.85); }

@media (max-width: 576px){
  .companies-showcase{ overflow: visible !important; overflow-x:hidden !important; }
  .companies-grid{ grid-template-columns: 1fr; gap:0.75rem; }
  .company-card{ border-radius:1.35rem; }
  .company-card__media{ padding:0.5rem; gap:0.5rem; }
  .company-card__media-content{ align-items:flex-start; gap:0.5rem; }
  .company-card__identity{ width:100%; }
  .company-card__logo{ width:60px; height:60px; border-radius:0.95rem; }
  .company-card__badge{ font-size:0.72rem; padding:0.32rem 0.9rem; width:100%; }
  .company-card__actions{ width:100%; flex:0 0 100%; justify-content:flex-start; }
  .company-card__action{ padding:0.3rem 0.65rem; font-size:0.68rem; }
  .company-card__action span{ max-width:6.5rem; }
  .company-card__body{ padding:0.95rem; gap:0.45rem; }
  .company-card__description{ -webkit-line-clamp:2; line-clamp:2; }
  .dashboard-toolbar .search-group{ min-width:100%; }
  .dashboard-toolbar .where-group, .dashboard-toolbar .city-group{ min-width: calc(50% - .5rem); flex:1 1 48%; }
}

@media (min-width: 577px) and (max-width: 992px){
  .companies-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 993px){
  .company-card__media-content{ align-items:center; }
  .company-card__identity{ flex-direction:column; align-items:center; gap:0.65rem; }
  .company-card__identity .company-card__badge{ flex:1 1 auto; min-width:0; }
  .company-card__identity .company-card__actions{ width:auto; margin-left:auto; justify-content:flex-end; }
}

.self-register-form{ max-width:720px; }

/* Public company detail */
.company-public-view{ padding: clamp(1rem, 2vw, 1.75rem); }
.company-public-view > .shadowed-box{ border-radius:1.75rem; margin-left: clamp(0.5rem, 4vw, 3rem); margin-right: clamp(0.5rem, 4vw, 3rem); padding: clamp(1.5rem, 3vw, 2.6rem); background: linear-gradient(135deg, rgba(248,250,252,0.96), rgba(226,232,240,0.92)); border:1px solid rgba(148,163,184,0.35); box-shadow:0 1.2rem 2.6rem rgba(15, 23, 42, 0.1); }
.company-public-view__back{ display:flex; justify-content:flex-start; }
.company-public-view__back-btn{ border-radius:999px; padding:0.45rem 1rem; font-weight:600; box-shadow:0 8px 18px rgba(15, 23, 42, 0.08); }

.company-public-view__hero{ position:relative; border-radius:1.5rem; background: linear-gradient(145deg, var(--company-card-primary), var(--company-card-secondary)); padding: clamp(1.6rem, 3vw, 2.6rem); color: var(--company-card-badge-text); overflow:hidden; box-shadow:0 1.2rem 2.4rem rgba(15, 23, 42, 0.18); }
.company-public-view__hero::before{ content:''; position:absolute; inset:-38% -22% auto 48%; aspect-ratio:1/1; background: radial-gradient(circle, rgba(255,255,255,0.38), transparent 68%); pointer-events:none; }
.company-public-view__hero-content{ position:relative; z-index:1; display:flex; flex-wrap:wrap; align-items:center; gap: clamp(1rem, 3vw, 1.8rem); }
.company-public-view__identity{ display:flex; align-items:center; gap: clamp(1rem, 3vw, 1.8rem); flex:1 1 320px; min-width:0; }
.company-public-view__logo{ width: clamp(88px, 14vw, 120px); height: clamp(88px, 14vw, 120px); border-radius:1.35rem; background:#ffffff; border:1px solid rgba(148,163,184,0.28); display:flex; align-items:center; justify-content:center; box-shadow:0 18px 34px rgba(15, 23, 42, 0.2); }
.company-public-view__logo-img{ width:100%; height:100%; -o-object-fit:contain; object-fit:contain; border-radius:inherit; }
.company-public-view__details{ display:flex; flex-direction:column; gap:0.75rem; min-width:0; }
.company-public-view__details .company-card__badge{ font-size: clamp(0.78rem, 0.68rem + 0.35vw, 0.95rem); padding:0.5rem 1.6rem; background: rgba(255,255,255,0.92); color: var(--company-card-badge-text); border-color: var(--company-card-primary); }
.company-public-view__meta{ display:flex; flex-wrap:wrap; gap:0.55rem; align-items:center; font-size:0.92rem; color: color-mix(in srgb, var(--company-card-badge-text) 80%, rgba(15, 23, 42, 0.88)); }
.company-public-view__meta-item{ display:inline-flex; align-items:center; gap:0.35rem; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.company-public-view__meta-item i{ font-size:0.9rem; opacity:0.85; }
.company-public-view__meta-item span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.company-public-view__meta-dot{ color: color-mix(in srgb, var(--company-card-badge-text) 55%, rgba(255,255,255,0.6)); font-weight:600; }
.company-public-view__actions{ display:flex; flex-wrap:wrap; gap:0.55rem; justify-content:flex-end; flex:1 1 220px; min-width:0; }
.company-public-view__action{ display:inline-flex; align-items:center; gap:0.4rem; padding:0.55rem 1.1rem; border-radius:999px; font-size:0.82rem; font-weight:600; border:1px solid rgba(255,255,255,0.55); background: rgba(255,255,255,0.18); color: var(--company-card-badge-text); text-decoration:none; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.company-public-view__action span{ max-width:9.5rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.company-public-view__action i{ font-size:0.9rem; }
.company-public-view__action:hover{ background: rgba(255,255,255,0.26); color: var(--company-card-badge-text); text-decoration:none; box-shadow:0 10px 20px rgba(15, 23, 42, 0.18); }
.company-public-view__action--highlight{ border-color: rgba(255,255,255,0.72); background: rgba(255,255,255,0.25); }

.company-public-view__body{ display:flex; flex-direction:column; gap: clamp(1.2rem, 2.5vw, 1.8rem); }
.company-public-card{ background: rgba(255,255,255,0.92); border:1px solid rgba(148,163,184,0.24); border-radius:1.35rem; padding: clamp(1.15rem, 2.4vw, 1.65rem); box-shadow:0 1rem 2.1rem rgba(15, 23, 42, 0.12); display:flex; flex-direction:column; gap:0.75rem; min-height:0; }
.company-public-card--wide{ width:100%; }
.company-public-card__title{ font-size: clamp(1rem, 0.95rem + 0.35vw, 1.25rem); font-weight:600; margin:0; color: rgba(15, 23, 42, 0.85); }
.company-public-card__subtitle{ font-size:0.88rem; text-transform:uppercase; letter-spacing:0.08em; color: rgba(15, 23, 42, 0.58); margin-bottom:0.35rem; }
.company-public-card__text{ margin:0; color: rgba(15, 23, 42, 0.78); line-height:1.55; }
.company-public-card__muted{ color: rgba(15, 23, 42, 0.45); }
.company-public-card__columns{ display:grid; gap: clamp(1rem, 2vw, 1.5rem); }
.company-public-card__column{ display:flex; flex-direction:column; gap:0.45rem; min-width:0; }
.company-public-card__link{ color: var(--company-card-primary); font-weight:600; text-decoration:none; }
.company-public-card__link:hover{ text-decoration:underline; }
.company-public-view__grid{ display:grid; gap: clamp(1rem, 2.2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.company-public-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.55rem; }
.company-public-list li{ display:flex; align-items:flex-start; gap:0.6rem; font-size:0.95rem; color: rgba(15, 23, 42, 0.8); }
.company-public-list i{ font-size:0.95rem; margin-top:0.2rem; color: rgba(15, 23, 42, 0.55); }
.company-public-card--map{ padding-bottom: clamp(1rem, 2.5vw, 1.5rem); }
.company-public-card__map iframe{ border-radius:1rem; border:0; width:100%; height:100%; }

@media (max-width: 576px){
  .company-public-view{ padding:1rem; }
  .company-public-view > .shadowed-box{ margin-left:0.25rem; margin-right:0.25rem; padding:1.35rem; }
  .company-public-view__hero{ padding:1.35rem; border-radius:1.25rem; }
  .company-public-view__identity{ flex-direction:column; align-items:flex-start; gap:0.85rem; }
  .company-public-view__actions{ justify-content:flex-start; }
  .company-public-view__action{ width:100%; justify-content:center; }
  .company-public-view__action span{ max-width:none; }
  .company-public-card{ border-radius:1.15rem; padding:1.15rem; }
}

@media (min-width: 768px){
  .company-public-card__columns{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .company-public-card--wide{ grid-column: 1 / -1; }
}

:is(body.bg-dark, body[data-theme='dark']) .company-public-view > .shadowed-box{ background: linear-gradient(135deg, rgba(15,23,42,0.95), rgba(30,41,59,0.88)); border-color: rgba(100,116,139,0.45); box-shadow:0 1.35rem 2.8rem rgba(2,6,23,0.58); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__hero{ box-shadow:0 1.3rem 2.8rem rgba(2,6,23,0.62); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__meta{ color: color-mix(in srgb, var(--company-card-badge-text) 85%, rgba(226,232,240,0.88)); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__meta-item i{ color: color-mix(in srgb, var(--company-card-badge-text) 65%, rgba(226,232,240,0.75)); opacity:0.9; }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__meta-dot{ color: color-mix(in srgb, var(--company-card-badge-text) 55%, rgba(226,232,240,0.65)); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__action{ border-color: rgba(255,255,255,0.45); background: rgba(15,23,42,0.45); color: rgba(226,232,240,0.92); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__action--highlight{ border-color: rgba(255,255,255,0.55); background: rgba(15,23,42,0.6); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-view__action:hover{ background: rgba(148,163,184,0.32); color:#0b1120; }
:is(body.bg-dark, body[data-theme='dark']) .company-public-card{ background: rgba(16,24,40,0.92); border-color: rgba(100,116,139,0.4); box-shadow:0 1.25rem 2.6rem rgba(2,6,23,0.55); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-card__title{ color: rgba(226,232,240,0.92); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-card__subtitle{ color: rgba(148,163,184,0.75); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-card__text{ color: rgba(226,232,240,0.85); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-card__muted{ color: rgba(148,163,184,0.65); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-list li{ color: rgba(226,232,240,0.85); }
:is(body.bg-dark, body[data-theme='dark']) .company-public-list i{ color: rgba(148,163,184,0.7); }


/* Lightweight register lead H3 to improve LCP */
.companies-showcase .register-lead{
  font-size: clamp(1rem, 0.9rem + 0.6vw, 1.25rem) !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: .1px;
  margin-bottom: .5rem !important;
  content-visibility:auto;
}

/* Gentle L/R padding for the self-register field without inline styles */
.self-register-form .col-form-wrap{ padding-left:.5rem; padding-right:.5rem }
@media (min-width: 768px){ .self-register-form .col-form-wrap{ padding-left:.75rem; padding-right:.75rem } }
