/*
  CB-IT unified visual system — shared across cb-it.at, software.cb-it.at
  and assistent.cb-it.at. Loaded LAST so typography, floating navigation,
  cards and CTA surfaces stay visually consistent across the ecosystem.
*/
:root {
  --cb-bg: #f4f7fc;
  --cb-bg-alt: #eaf0fa;
  --cb-ink: #0a1628;
  --cb-text: #41557a;
  --cb-muted: #6f86a8;
  --cb-line: rgba(10,22,40,.10);
  --cb-line-strong: rgba(10,22,40,.18);
  --cb-glass: rgba(255,255,255,.78);
  --cb-glass-strong: rgba(255,255,255,.94);
  --cb-blue: #2563eb;
  --cb-blue-hover: #1d4ed8;
  --cb-cyan: #22d3ee;
  --cb-radius: 18px;
  --cb-radius-sm: 12px;
  --cb-pill: 999px;
  --cb-shadow: 0 2px 6px rgba(10,22,40,.06), 0 14px 34px rgba(10,22,40,.10);
  --cb-shadow-hover: 0 4px 10px rgba(10,22,40,.07), 0 24px 56px rgba(10,22,40,.14);
  --cb-shadow-nav: 0 16px 48px rgba(10,22,40,.18);
  --cb-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, system-ui, sans-serif;
}

html, body {
  font-family: var(--cb-font) !important;
  background: var(--cb-bg);
  color: var(--cb-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body { font-size:16px; line-height:1.6; }
button,input,select,textarea { font-family:var(--cb-font) !important; }

/* Same type scale everywhere. */
.hero h1,
.detail-hero h1,
.hero-copy h1,
.h1 {
  font-family: var(--cb-font) !important;
  font-size: clamp(44px, 6vw, 76px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.025em !important;
  font-weight: 400 !important;
  color: var(--cb-ink);
}
.section h2,
.detail-section h2,
.section-head h2,
.h2 {
  font-family: var(--cb-font) !important;
  font-size: clamp(30px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.02em !important;
  font-weight: 700 !important;
  color: var(--cb-ink);
}
.svc-card h3,
.card h3,
.detail-grid article h3,
.benefits article h3,
.industry-grid article h3,
.demo-cards article h3,
.handoff-grid article h3,
.example-card h3,
.software-processes article h3 {
  font-family: var(--cb-font) !important;
  font-size: 26px !important;
  line-height: 1.12 !important;
  letter-spacing: -.01em !important;
  font-weight: 400 !important;
  color: var(--cb-ink);
}
.lead,
.hero .lead,
.detail-hero .lead,
.detail-section .lead {
  font-family: var(--cb-font) !important;
  font-size: clamp(17px, 1.4vw, 20px) !important;
  line-height: 1.55 !important;
  color: var(--cb-text) !important;
}
p { color: inherit; }

/* Same eyebrow treatment. */
.eyebrow {
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  width:auto !important;
  margin-bottom:16px !important;
  padding:7px 14px !important;
  border:1px solid var(--cb-line) !important;
  border-radius:var(--cb-pill) !important;
  background:var(--cb-glass) !important;
  color:var(--cb-text) !important;
  font-family:var(--cb-font) !important;
  font-size:12px !important;
  font-weight:600 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
}
.eyebrow .dot {
  display:inline-block;
  width:6px; height:6px; flex:0 0 6px;
  border-radius:50%;
  background:var(--cb-cyan);
  box-shadow:0 0 12px var(--cb-cyan);
}

/* Floating pill navigation: same visual geometry for all three sites. */
.nav,
[data-theme="light"] .nav,
.site-header {
  position:fixed !important;
  top:18px !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  z-index:1000 !important;
  width:max-content !important;
  max-width:calc(100vw - 32px) !important;
  min-height:68px !important;
  padding:8px 10px 8px 18px !important;
  border:1px solid var(--cb-line) !important;
  border-radius:var(--cb-pill) !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:var(--cb-shadow-nav) !important;
  -webkit-backdrop-filter:blur(24px) saturate(140%) !important;
  backdrop-filter:blur(24px) saturate(140%) !important;
}
.nav { gap:6px !important; }
.site-header .nav-wrap {
  width:auto !important;
  min-height:50px !important;
  padding:0 !important;
  margin:0 !important;
  gap:6px !important;
}
.nav-logo,
.site-header .brand {
  display:inline-flex !important;
  align-items:center !important;
  width:158px !important;
  flex:0 0 158px !important;
  padding-right:18px !important;
  margin-right:2px !important;
  border-right:1px solid var(--cb-line) !important;
}
.nav-logo img,
.site-header .brand img {
  width:140px !important;
  height:auto !important;
  max-width:none !important;
  max-height:48px !important;
  object-fit:contain !important;
}
.nav .nav-link,
.site-header nav a {
  display:inline-flex !important;
  align-items:center !important;
  min-height:38px !important;
  padding:9px 12px !important;
  border-radius:var(--cb-pill) !important;
  color:var(--cb-text) !important;
  font-family:var(--cb-font) !important;
  font-size:14px !important;
  font-weight:600 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
.nav .nav-link:hover,
.site-header nav a:hover {
  color:var(--cb-ink) !important;
  background:var(--cb-bg-alt) !important;
}
.nav .nav-cta,
.site-header .nav-wrap > .button {
  min-height:48px !important;
  margin-left:4px !important;
  padding:12px 22px !important;
  border:0 !important;
  border-radius:var(--cb-radius-sm) !important;
  background:linear-gradient(135deg,var(--cb-cyan),var(--cb-blue)) !important;
  color:#061426 !important;
  font-family:var(--cb-font) !important;
  font-size:15px !important;
  font-weight:700 !important;
  box-shadow:0 10px 28px rgba(37,99,235,.22) !important;
}
.nav .nav-cta:hover,
.site-header .nav-wrap > .button:hover {
  background:linear-gradient(135deg,#06c5df,var(--cb-blue-hover)) !important;
  box-shadow:0 14px 34px rgba(37,99,235,.30) !important;
}
.site-header nav { margin-left:0 !important; gap:6px !important; }

/* Same button family. */
.btn,
.button {
  font-family:var(--cb-font) !important;
  min-height:48px !important;
  padding:12px 22px !important;
  border-radius:var(--cb-radius-sm) !important;
  font-size:15px !important;
  font-weight:600 !important;
}
.btn-primary,
.button:not(.secondary) {
  background:linear-gradient(135deg,var(--cb-cyan),var(--cb-blue)) !important;
  color:#061426 !important;
  border:0 !important;
  box-shadow:0 10px 28px rgba(37,99,235,.22) !important;
}
.btn-ghost,
.button.secondary {
  background:var(--cb-glass-strong) !important;
  color:var(--cb-ink) !important;
  border:1px solid var(--cb-line-strong) !important;
  box-shadow:none !important;
}

/* One card language across the whole ecosystem. */
.svc-card,
.card,
.example-card,
.comparison-card,
.benefits article,
.industry-grid article,
.demo-cards article,
.handoff-grid article,
.detail-grid article,
.software-processes article,
.software-faq-grid article,
.more-than-chatbot {
  position:relative !important;
  min-width:0 !important;
  padding:32px !important;
  border:1px solid var(--cb-line) !important;
  border-radius:var(--cb-radius) !important;
  background:var(--cb-glass) !important;
  -webkit-backdrop-filter:blur(20px) saturate(140%) !important;
  backdrop-filter:blur(20px) saturate(140%) !important;
  box-shadow:var(--cb-shadow) !important;
  overflow:hidden !important;
  transition:transform .45s cubic-bezier(.16,1,.3,1), border-color .3s, background .3s, box-shadow .3s !important;
}
.svc-card:hover,
.card:hover,
.example-card:hover,
.comparison-card:hover,
.benefits article:hover,
.industry-grid article:hover,
.demo-cards article:hover,
.handoff-grid article:hover,
.detail-grid article:hover,
.software-processes article:hover,
.software-faq-grid article:hover,
.more-than-chatbot:hover {
  transform:translateY(-6px) !important;
  border-color:var(--cb-line-strong) !important;
  background:var(--cb-glass-strong) !important;
  box-shadow:var(--cb-shadow-hover) !important;
}
.card p,
.detail-grid article p,
.benefits article p,
.industry-grid article p,
.demo-cards article p,
.handoff-grid article p,
.example-card p,
.software-processes article p {
  color:var(--cb-text) !important;
  font-size:14.5px !important;
  line-height:1.55 !important;
}
/* Number badges are not part of the corporate card language. */
.icon-mark { display:none !important; }

/* Detail page layout: no awkward split headings. */
.detail-section { padding:76px 0 !important; border-top:1px solid var(--cb-line) !important; }
.detail-section .section-head {
  display:block !important;
  max-width:820px !important;
  margin:0 0 38px !important;
}
.detail-section .section-head p {
  max-width:72ch !important;
  margin:16px 0 0 !important;
  color:var(--cb-text) !important;
}
.detail-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
  margin-top:32px !important;
}
.detail-note,
.section-note {
  max-width:900px;
  margin-top:28px !important;
  padding:20px 22px !important;
  border:1px solid rgba(37,99,235,.20) !important;
  border-left:4px solid var(--cb-cyan) !important;
  border-radius:var(--cb-radius-sm) !important;
  background:var(--cb-glass-strong) !important;
  color:var(--cb-text) !important;
}
/* Loose SEO link rows are intentionally suppressed; navigation/footer/cards handle discovery. */
.detail-links,
.detail-related { display:none !important; }

/* Final CTA should look like a deliberate component, not a blank strip. */
.detail-section.cb-cta-section {
  border-top:0 !important;
  padding:72px 0 !important;
}
.detail-section.cb-cta-section > .wrap,
.detail-section.cb-cta-section > .container {
  padding:42px !important;
  border:1px solid var(--cb-line) !important;
  border-radius:var(--cb-radius) !important;
  background:var(--cb-glass) !important;
  box-shadow:var(--cb-shadow) !important;
}
.detail-section.cb-cta-section .lead { max-width:70ch !important; margin-top:16px !important; }
.detail-section.cb-cta-section .btn,
.detail-section.cb-cta-section .button { margin-top:24px !important; }

/* Software home service cards use same card geometry; process steps may remain numbered because the number has semantic order. */
.grid { gap:16px !important; }

/* Consistent footer surface/typography. */
.footer,
.site-footer {
  background:#071329 !important;
  color:#d9e2f2 !important;
  border-top:1px solid rgba(255,255,255,.12) !important;
}
.footer h4,
.site-footer h2 { color:#f6f9ff !important; }
.footer a,
.footer p,
.site-footer a,
.site-footer p { color:#aebbd0; }
.footer a:hover,
.site-footer a:hover { color:var(--cb-cyan) !important; }

@media(max-width:1080px) {
  .nav,
  [data-theme="light"] .nav,
  .site-header {
    top:12px !important;
    max-width:calc(100vw - 24px) !important;
    min-height:62px !important;
    padding:7px 8px 7px 14px !important;
  }
  .nav-logo,
  .site-header .brand { width:142px !important; flex-basis:142px !important; padding-right:0 !important; border-right:0 !important; }
  .nav-logo img,
  .site-header .brand img { width:132px !important; }
}
@media(max-width:900px) {
  .detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media(max-width:780px) {
  .site-header { width:calc(100vw - 24px) !important; }
  .site-header .nav-wrap { width:100% !important; justify-content:space-between !important; }
  .site-header nav {
    top:calc(100% + 10px) !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    padding:14px !important;
    border:1px solid var(--cb-line) !important;
    border-radius:var(--cb-radius) !important;
    background:rgba(255,255,255,.98) !important;
    box-shadow:var(--cb-shadow-nav) !important;
  }
  .site-header nav a { padding:11px 14px !important; }
  .site-header .nav-wrap > .button { margin-left:auto !important; }
}
@media(max-width:620px) {
  .detail-grid { grid-template-columns:1fr !important; }
  .detail-section.cb-cta-section > .wrap,
  .detail-section.cb-cta-section > .container { padding:28px !important; }
}
@media(max-width:520px) {
  .hero h1,.detail-hero h1,.hero-copy h1,.h1 { font-size:clamp(36px,11vw,44px) !important; }
  .section h2,.detail-section h2,.section-head h2,.h2 { font-size:30px !important; }
  .nav-logo,.site-header .brand { width:126px !important; flex-basis:126px !important; }
  .nav-logo img,.site-header .brand img { width:118px !important; }
  .svc-card,.card,.example-card,.benefits article,.industry-grid article,.demo-cards article,.handoff-grid article,.detail-grid article { padding:24px !important; }
}
