/* CMPROM enterprise premium pass - public site + client portal */
:root {
  --cmp-ink: #08111f;
  --cmp-panel: #ffffff;
  --cmp-panel-soft: #f5f7fb;
  --cmp-line: rgba(10, 22, 40, .12);
  --cmp-muted: #5f6d80;
  --cmp-red: #d81f2a;
  --cmp-red-dark: #a91420;
  --cmp-blue: #1d4f91;
  --cmp-cyan: #0f8b9c;
  --cmp-shadow: 0 18px 50px rgba(6, 18, 36, .12);
}

html { scroll-behavior: smooth; }
body { background: #f4f6fa; color: var(--cmp-ink); text-rendering: optimizeLegibility; }
body:not(.is-home) .site-header { box-shadow: 0 10px 30px rgba(5, 14, 27, .08); }

.site-header,
.navbar { backdrop-filter: saturate(140%) blur(18px); }
.nav-shell { min-height: 76px; }
.navbar-brand img { max-height: 46px; width: auto; }
.nav-link { font-weight: 750; }
.nav-actions .btn,
.btn { border-radius: 8px; font-weight: 800; }
.btn-accent,
.btn-primary {
  background: linear-gradient(135deg, var(--cmp-red), var(--cmp-red-dark));
  border-color: transparent;
  box-shadow: 0 12px 26px rgba(216, 31, 42, .24);
}
.btn-accent:hover,
.btn-primary:hover { filter: brightness(.96); transform: translateY(-1px); }
.btn-outline-dark,
.btn-outline-light { border-width: 1px; }

.hero,
.page-hero,
.module-hero,
.service-hero,
.solution-hero,
.industry-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--cmp-line);
}
.hero h1,
.page-hero h1,
.module-hero h1,
.service-hero h1,
.solution-hero h1,
.industry-hero h1 {
  max-width: 980px;
  line-height: .98;
}
.status-pill,
.badge,
.portal-badge {
  border-radius: 999px;
  font-weight: 850;
  letter-spacing: 0;
}
.status-pill {
  background: rgba(216, 31, 42, .10);
  color: var(--cmp-red-dark);
  border: 1px solid rgba(216, 31, 42, .22);
}

.module-band,
.section,
section { position: relative; }
.module-band { border-top: 1px solid rgba(10, 22, 40, .06); }
.module-band.alt { background: linear-gradient(180deg, #f7f9fd, #eef3f8); }
.card,
.portal-panel,
.feature-card,
.service-card,
.solution-card,
.industry-card,
.resource-card,
.pricing-card,
.demo-card,
.kpi-card,
.stat-card {
  border-radius: 8px !important;
  border: 1px solid var(--cmp-line) !important;
  box-shadow: var(--cmp-shadow);
}
.card:hover,
.feature-card:hover,
.service-card:hover,
.solution-card:hover,
.industry-card:hover,
.resource-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 64px rgba(6, 18, 36, .15);
}
.card,
.feature-card,
.service-card,
.solution-card,
.industry-card,
.resource-card { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }

.mega-menu {
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 30px 90px rgba(4, 11, 22, .28);
}
.mega-link { border-radius: 8px; }
.language-menu__dropdown,
.account-menu__dropdown { border-radius: 8px; box-shadow: 0 24px 70px rgba(4, 11, 22, .20); }
.language-menu__search input { min-width: 0; }

.form-control,
.form-select,
.input-group-text,
textarea {
  border-radius: 8px !important;
  border-color: rgba(10, 22, 40, .16);
}
.form-control:focus,
.form-select:focus,
textarea:focus {
  border-color: rgba(216, 31, 42, .62);
  box-shadow: 0 0 0 .2rem rgba(216, 31, 42, .14);
}
.table { vertical-align: middle; }
.table thead th { color: #35445a; font-size: .78rem; text-transform: uppercase; letter-spacing: 0; }
.table > :not(caption) > * > * { padding: .9rem .85rem; }

/* Client portal */
body.is-client-area { background: #eef3f8; }
body.is-client-area .site-header { position: sticky; top: 0; z-index: 1030; }
.portal-shell { min-height: 72vh; padding-top: 2.2rem; }
.client-topbar {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  background: linear-gradient(135deg, #091426, #132c4f 62%, #113f49);
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  padding: 1.4rem;
  box-shadow: 0 22px 70px rgba(6, 18, 36, .22);
}
.client-topbar h1 { font-size: clamp(1.55rem, 2.4vw, 2.4rem); line-height: 1.05; }
.client-topbar .text-muted { color: rgba(255,255,255,.72) !important; }
.client-topbar .status-pill { background: rgba(255,255,255,.10); color: #fff; border-color: rgba(255,255,255,.20); }
.portal-nav {
  margin: 1rem 0 1.25rem;
  display: flex;
  gap: .45rem;
  overflow-x: auto;
  padding: .45rem;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--cmp-line);
  border-radius: 8px;
  box-shadow: 0 14px 40px rgba(6, 18, 36, .08);
}
.portal-nav a {
  flex: 0 0 auto;
  text-decoration: none;
  color: #33445b;
  padding: .68rem .88rem;
  border-radius: 8px;
  font-weight: 850;
  white-space: nowrap;
}
.portal-nav a:hover { background: #eef3f8; color: var(--cmp-red-dark); }
.portal-nav a.active { background: #111c32; color: #fff; }
.portal-panel {
  background: rgba(255,255,255,.94) !important;
  color: var(--cmp-ink);
}
.portal-card-head,
.client-billing-intro {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.portal-badge.ok { background: rgba(19, 135, 88, .12); color: #0d6b44; }
.portal-badge.warn { background: rgba(194, 130, 0, .14); color: #8a5b00; }
.portal-badge.muted { background: rgba(95, 109, 128, .14); color: #4a5869; }

.footer { border-top: 1px solid rgba(255,255,255,.12); }
.cookie-banner { border-radius: 8px; box-shadow: 0 20px 58px rgba(6,18,36,.18); }
.back-to-top { border-radius: 8px; }

@media (max-width: 991px) {
  .client-topbar,
  .portal-card-head,
  .client-billing-intro { align-items: flex-start; flex-direction: column; }
  .nav-shell { min-height: 64px; }
  .table-responsive { border-radius: 8px; }
}

@media (max-width: 575px) {
  .portal-shell { padding-top: 1rem; }
  .client-topbar { padding: 1rem; }
  .portal-nav { margin-inline: -0.25rem; }
  .btn { max-width: 100%; white-space: normal; }
}
