:root {
  --pc-ink: #07111f;
  --pc-ink-2: #0d1b2d;
  --pc-blue: #0377eb;
  --pc-blue-dark: #005fbe;
  --pc-blue-soft: #eaf4ff;
  --pc-orange: #f0783c;
  --pc-green: #1dbf73;
  --pc-text: #172033;
  --pc-muted: #607087;
  --pc-line: #dce5ef;
  --pc-bg: #ffffff;
  --pc-bg-soft: #f5f8fc;
  --pc-radius: 20px;
  --pc-shadow: 0 24px 70px rgba(7, 17, 31, .12);
  --color-primary: var(--pc-ink) !important;
  --color-primary-dark: var(--pc-ink) !important;
  --color-primary-deeper: #030914 !important;
  --color-orange: var(--pc-blue) !important;
  --color-orange-hover: var(--pc-blue-dark) !important;
  --color-bg-alt: var(--pc-bg-soft) !important;
  --color-text: var(--pc-text) !important;
  --color-text-light: var(--pc-muted) !important;
}

html { scroll-behavior: smooth; scroll-padding-top: 100px; }
[data-lang] { display:none !important; }
html[lang="nl"] [data-lang="nl"], html[lang="en"] [data-lang="en"], html[lang="de"] [data-lang="de"] { display:revert !important; }
body {
  color: var(--pc-text) !important;
  background: var(--pc-bg) !important;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body::before { display: none !important; }
a { text-underline-offset: 3px; }
.skip-link { position:fixed; z-index:10000; top:10px; left:10px; padding:11px 16px; color:#fff; background:var(--pc-blue); border-radius:9px; font-weight:800; transform:translateY(-150%); transition:transform .18s ease; }
.skip-link:focus { transform:translateY(0); }
.container { width: min(1180px, calc(100% - 40px)) !important; max-width: none !important; margin-inline: auto !important; }

/* Header */
.navbar {
  position: sticky !important;
  top: 0;
  z-index: 1000;
  min-height: 88px !important;
  background: rgba(255, 255, 255, .92) !important;
  border-bottom: 1px solid rgba(220, 229, 239, .92) !important;
  box-shadow: 0 2px 16px rgba(7, 17, 31, .045) !important;
  backdrop-filter: blur(18px);
}
.navbar .container { max-width: 1180px !important; }
.navbar-inner { min-height: 88px !important; height: auto !important; display: flex !important; align-items: center !important; }
.navbar-brand { gap: 13px !important; min-width: 260px; flex-direction: row !important; align-items: center !important; }
.navbar-logo { width: auto !important; height: 60px !important; max-width: 215px !important; object-fit: contain; }
.navbar-subtitle { color: #78869a !important; font-size: 10px !important; letter-spacing: .035em; line-height: 1.35; }
.navbar-nav { gap: 6px !important; align-items: center !important; }
.navbar-nav > a {
  color: #46566c !important;
  padding: 11px 14px !important;
  border-radius: 10px;
  font-size: 13px !important;
  font-weight: 700 !important;
  border: 0 !important;
}
.navbar-nav > a::after { display: none !important; }
.navbar-nav > a:hover, .navbar-nav > a.active { color: var(--pc-blue) !important; background: var(--pc-blue-soft) !important; }
.navbar-nav > a:last-child { color: #fff !important; background: var(--pc-ink) !important; padding-inline: 18px !important; }
.navbar-nav > a:last-child:hover { background: var(--pc-blue) !important; }
.lang-switch { padding: 3px !important; background: #eef2f7 !important; border: 1px solid var(--pc-line) !important; border-radius: 9px !important; }
.lang-switch button { color: #65758a !important; border-radius: 6px !important; min-width: 31px; height: 29px; font-size: 10px !important; }
.lang-switch button.active { color: #fff !important; background: var(--pc-blue) !important; box-shadow: none !important; }
.hamburger span { background: var(--pc-ink) !important; }
.mobile-nav { background: rgba(255,255,255,.98) !important; border-top: 1px solid var(--pc-line) !important; box-shadow: var(--pc-shadow); }
.mobile-nav a { color: var(--pc-text) !important; font-weight: 700 !important; }
.mobile-lang-switch { display:none; padding:14px 18px 18px; gap:8px; border-top:1px solid var(--pc-line); }
.mobile-lang-switch button { flex:1; min-height:40px; border:1px solid var(--pc-line); border-radius:9px; color:#65758a; background:#f3f6fa; font-size:12px; font-weight:800; }
.mobile-lang-switch button.active { color:#fff; background:var(--pc-blue); border-color:var(--pc-blue); }

/* Typography and shared sections */
h1, h2, h3, h4 { color: var(--pc-ink); letter-spacing: -.035em; }
.section, .howitworks, .about, .platform-section, .concrete, .factory, .modules-section, .why, .tech-integrations, .seo-content { padding-block: 96px !important; }
.section-alt, .modules-section, .factory { background: var(--pc-bg-soft) !important; }
.section-header { max-width: 780px !important; margin: 0 auto 48px !important; }
.section-header h2, .section-title, .about h2, .concrete h2, .factory h2, .modules-section h2, .why h2, .tech-integrations h2 {
  color: var(--pc-ink) !important;
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -.045em !important;
}
.section-header p, .section-subtitle, .about p, .seo-content p { color: var(--pc-muted) !important; }
.breadcrumb { padding-top: 22px !important; padding-bottom: 12px !important; color: #7a899b !important; font-size: 12px !important; }
.breadcrumb a { color: var(--pc-blue) !important; }

/* Homepage hero */
body:has(.hero-bg) .hero {
  min-height: 680px !important;
  padding: 78px 0 82px !important;
  background: linear-gradient(135deg, #f7faff 0%, #fff 58%, #eaf4ff 100%) !important;
  color: var(--pc-text) !important;
  overflow: hidden;
}
.hero-bg { opacity: .18 !important; }
.hero-grid { background-image: linear-gradient(rgba(3,119,235,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(3,119,235,.08) 1px,transparent 1px) !important; }
.hero-glow-1, .hero-glow-2, .hero-glow-3 { opacity: .16 !important; }
.hero-inner { width: min(1180px, calc(100% - 40px)) !important; max-width: none !important; gap: 64px !important; }
.hero-text h1 { color: var(--pc-ink) !important; font-size: clamp(3rem, 5.3vw, 4.8rem) !important; line-height: 1.02 !important; letter-spacing: -.055em !important; }
.hero-text h1 .accent { color: var(--pc-blue) !important; -webkit-text-fill-color: var(--pc-blue) !important; background: none !important; }
.hero-text .hero-subtitle { color: var(--pc-muted) !important; font-size: 17px !important; max-width: 620px; }
.hero-badge { color: var(--pc-blue) !important; background: var(--pc-blue-soft) !important; border-color: #c8defb !important; }
.hero-badge-dot { background: var(--pc-blue) !important; box-shadow: 0 0 0 4px rgba(3,119,235,.12); }
.hero-trust { gap: 9px !important; }
.trust-tag { color: #53637a !important; background: rgba(255,255,255,.8) !important; border-color: var(--pc-line) !important; }

/* Inner-page heroes */
body:not(:has(.hero-bg)) > .hero, body:not(:has(.hero-bg)) .hero {
  position: relative;
  min-height: 0 !important;
  padding: 78px 0 88px !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--pc-ink) 0%, #0b2548 62%, #07376b 100%) !important;
  overflow: hidden;
}
body:not(:has(.hero-bg)) .hero::after { content:""; position:absolute; width:520px; height:520px; border:80px solid rgba(3,119,235,.12); border-radius:50%; right:-220px; top:-300px; }
body:not(:has(.hero-bg)) .hero-content { max-width: 830px !important; position: relative; z-index: 1; }
body:not(:has(.hero-bg)) .hero h1 { color:#fff !important; font-size:clamp(2.5rem,5vw,4.5rem) !important; line-height:1.05 !important; letter-spacing:-.05em !important; }
body:not(:has(.hero-bg)) .hero-subtitle { color:#b5c3d5 !important; max-width:760px !important; font-size:17px !important; }
.hero-icon, .hero-module-icon { background: rgba(3,119,235,.16) !important; border:1px solid rgba(100,173,255,.28) !important; box-shadow:none !important; }
.hero-tag, .tag-core { color:#91c8ff !important; background:rgba(3,119,235,.14) !important; border-color:rgba(100,173,255,.25) !important; }

/* Buttons */
.btn { min-height: 48px; padding: 13px 21px !important; border-radius: 11px !important; font-weight: 800 !important; border: 0 !important; transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #fff !important; background: var(--pc-blue) !important; box-shadow: 0 12px 28px rgba(3,119,235,.26) !important; }
.btn-primary:hover { background: var(--pc-blue-dark) !important; box-shadow: 0 16px 34px rgba(3,119,235,.32) !important; }
.btn-secondary { color: var(--pc-ink) !important; background:#fff !important; border:1px solid var(--pc-line) !important; box-shadow:none !important; }

/* Cards and grids */
.feature-card, .benefit-card, .usecase-card, .related-card, .module-card, .mod-card, .module-overview-card, .detail-card, .tech-card, .why-card, .advantage-card, .sector-card, .concrete-card, .about-feature {
  color: var(--pc-text) !important;
  background: #fff !important;
  border: 1px solid var(--pc-line) !important;
  border-radius: var(--pc-radius) !important;
  box-shadow: none !important;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease !important;
}
.feature-card:hover, .benefit-card:hover, .usecase-card:hover, .related-card:hover, .module-card:hover, .mod-card:hover, .module-overview-card:hover, .detail-card:hover, .tech-card:hover, .why-card:hover, .advantage-card:hover {
  transform: translateY(-5px) !important;
  border-color: #bdd5f5 !important;
  box-shadow: var(--pc-shadow) !important;
}
.feature-card h3, .benefit-card h3, .usecase-card h3, .related-card h3, .module-card h3, .mod-card h3, .detail-card h3, .tech-card h3 { color: var(--pc-ink) !important; }
.feature-card p, .benefit-card p, .usecase-card p, .related-card p, .module-card p, .mod-card p, .detail-card p, .tech-card p { color: var(--pc-muted) !important; }
.feature-icon, .benefit-icon, .feature-card-icon, .related-card-icon, .module-card-icon, .mod-card-icon, .module-icon, .tech-icon, .advantage-icon, .sector-icon {
  color: var(--pc-blue) !important;
  background: var(--pc-blue-soft) !important;
  border-color: #cbe0fb !important;
  box-shadow: none !important;
}
.feature-icon svg *, .benefit-icon svg *, .feature-card-icon svg *, .related-card-icon svg *, .module-card-icon svg *, .mod-card-icon svg *, .module-icon svg *, .tech-icon svg * { stroke: currentColor !important; }
.module-link, .module-card-link, .card-arrow, .link-arrow, .related-card a { color: var(--pc-blue) !important; }

/* Flows and dashboards */
.flow { background: var(--pc-ink) !important; border-radius: 24px !important; padding: 24px !important; box-shadow: var(--pc-shadow) !important; }
.flow-step { border-color: #25374d !important; }
.dashboard, [class*="dashboard-frame"], [class*="db-window"], [class*="ed-dashboard"], [class*="planning-dashboard"] { color:#fff !important; background:#0d1b2d !important; border-color:#22364f !important; box-shadow:0 30px 80px rgba(7,17,31,.25) !important; }
.dashboard-chart, .dashboard-kpis .kpi-card { background:#112238 !important; border-color:#233951 !important; }
.db-section { background: var(--pc-bg-soft) !important; }

/* CTA */
.pc-screen-section { background:var(--pc-bg-soft) !important; }
.pc-screen-header { max-width:820px; margin:0 auto 38px; text-align:center; }
.pc-screen-eyebrow { display:block; margin-bottom:12px; color:var(--pc-blue); font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.pc-screen-header h2 { margin:0 0 16px; color:var(--pc-ink) !important; font-size:clamp(2rem,4vw,3.2rem); line-height:1.08; }
.pc-screen-header p { margin:0; color:var(--pc-muted); font-size:17px; }
.pc-screen-frame { margin:0; padding:12px; overflow:hidden; background:#fff; border:1px solid var(--pc-line); border-radius:24px; box-shadow:0 24px 70px rgba(7,17,31,.13); }
.pc-screen-frame a { display:block; overflow:hidden; border-radius:15px; background:#edf3f9; }
.pc-screen-frame img { display:block; width:100%; height:auto; }
.pc-screen-frame figcaption { display:flex; gap:14px; align-items:flex-start; padding:18px 12px 8px; color:var(--pc-muted); font-size:14px; }
.pc-screen-frame figcaption strong { display:block; margin-bottom:3px; color:var(--pc-ink); font-size:16px; }
.pc-screen-number { flex:0 0 34px; height:34px; display:grid; place-items:center; color:var(--pc-blue); background:var(--pc-blue-soft); border-radius:10px; font-size:12px; font-weight:800; }
.pc-screen-callout { display:grid; grid-template-columns:auto 1fr; gap:14px; max-width:900px; margin:22px auto 0; padding:18px 20px; color:#dceaff; background:var(--pc-ink); border-radius:16px; box-shadow:0 14px 35px rgba(7,17,31,.13); }
.pc-screen-callout-icon { width:36px; height:36px; display:grid; place-items:center; color:#fff; background:var(--pc-blue); border-radius:10px; font-weight:800; }
.pc-screen-callout strong { display:block; color:#fff; margin-bottom:2px; }
.pc-screen-callout p { margin:0; color:#b8c9dc; font-size:14px; }
.pc-screen-crop-mould { aspect-ratio:2.95/1; overflow:hidden; border-radius:15px; background:#edf3f9; }
.pc-screen-crop-mould img { width:100%; height:auto; }

.cta-banner {
  width: min(1180px, calc(100% - 40px)) !important;
  margin: 72px auto !important;
  padding: 62px 40px !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--pc-blue), #075eb6) !important;
  border-radius: 30px !important;
  overflow: hidden;
  box-shadow: 0 30px 70px rgba(3,119,235,.22) !important;
}
.cta-banner h2 { color: #fff !important; font-size:clamp(2rem,4vw,3.3rem) !important; letter-spacing:-.045em !important; }
.cta-banner p { color:#ddecff !important; }
.cta-banner .btn-primary { color:var(--pc-blue) !important; background:#fff !important; box-shadow:none !important; }

/* Forms */
input, select, textarea { color:var(--pc-text) !important; background:#fff !important; border:1px solid var(--pc-line) !important; border-radius:10px !important; }
input:focus, select:focus, textarea:focus { border-color:var(--pc-blue) !important; outline:none !important; box-shadow:0 0 0 4px rgba(3,119,235,.1) !important; }
.form-group label { color:var(--pc-ink) !important; }

/* Footer */
.footer { color:#9eb0c6 !important; background:var(--pc-ink) !important; border-top:0 !important; padding:70px 0 25px !important; }
.footer-grid { gap:64px !important; }
.footer-brand-logo {
  width:auto !important;
  height:74px !important;
  max-width:260px !important;
  box-sizing:content-box;
  object-fit:contain;
  filter:none !important;
  padding:10px 14px;
  background:#fff;
  border:1px solid rgba(255,255,255,.75);
  border-radius:14px;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.footer h4 { color:#fff !important; font-size:12px !important; letter-spacing:.1em !important; text-transform:uppercase; }
.footer a { color:#afbed0 !important; }
.footer a:hover { color:#fff !important; }
.footer-tagline { color:#fff !important; }
.footer-parent, .footer-contact, .footer-bottom { color:#8193a9 !important; }
.footer-bottom { border-top-color:#1d3046 !important; }

/* Privacy and cookie consent */
.cookie-banner { position:fixed; z-index:9999; right:20px; bottom:20px; width:min(470px,calc(100% - 40px)); padding:22px; color:#dce8f5; background:var(--pc-ink); border:1px solid #233a55; border-radius:18px; box-shadow:0 24px 70px rgba(7,17,31,.32); }
.cookie-banner strong { display:block; margin-bottom:7px; color:#fff; font-size:16px; }
.cookie-banner p { margin:0; color:#b8c9db; font-size:13px; line-height:1.55; }
.cookie-banner a { color:#91c8ff; text-decoration:underline; }
.cookie-actions { display:flex; gap:9px; justify-content:flex-end; margin-top:16px; }
.cookie-actions button { min-height:40px; padding:9px 15px; border:1px solid #34506e; border-radius:9px; color:#dce8f5; background:#12253a; font-weight:800; cursor:pointer; }
.cookie-actions .cookie-accept { color:#fff; background:var(--pc-blue); border-color:var(--pc-blue); }
.partner-section { padding:30px 0; background:#fff; }
.partner-callout { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:20px; align-items:center; padding:24px 28px; border:1px solid #d9e4f0; border-radius:18px; background:linear-gradient(135deg,#f7fbff,#fff); box-shadow:0 14px 38px rgba(7,17,31,.07); }
.partner-mark { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:#eaf4ff; color:#0377eb; font-size:13px; font-weight:800; letter-spacing:.04em; }
.partner-copy strong { display:block; color:#07111f; font-size:17px; margin-bottom:5px; }
.partner-copy p { margin:0; color:#607087; font-size:14px; line-height:1.65; }
.partner-link { display:inline-flex; align-items:center; gap:7px; color:#0377eb; font-size:14px; font-weight:800; white-space:nowrap; }
.partner-link:hover { text-decoration:underline; }

/* Motion and accessibility */
.fade-in { transition: opacity .55s ease, transform .55s ease !important; }
:focus-visible { outline:3px solid rgba(3,119,235,.42) !important; outline-offset:3px !important; }

@media (max-width: 980px) {
  .navbar-brand { min-width:0; }
  .navbar-logo { height:52px !important; max-width:185px !important; }
  .navbar-subtitle { display:none !important; }
  .hero-inner { grid-template-columns:1fr !important; }
  .hero-dashboard { max-width:720px; width:100%; margin-inline:auto; }
  .cta-banner { padding:48px 28px !important; }
}

@media (max-width: 760px) {
  .container { width:min(100% - 28px,1180px) !important; }
  .navbar, .navbar-inner { min-height:74px !important; }
  .navbar-logo { height:46px !important; max-width:165px !important; }
  .navbar-nav { display:none !important; }
  .navbar-right { margin-left:auto; }
  .navbar-right > .lang-switch { display:none !important; }
  .hamburger { display:flex !important; }
  .mobile-nav { top:74px !important; }
  .mobile-nav.active .mobile-lang-switch, .mobile-nav.open .mobile-lang-switch { display:flex; }
  body:has(.hero-bg) .hero { padding:58px 0 66px !important; }
  .hero-inner { width:min(100% - 28px,1180px) !important; }
  .hero-text h1 { font-size:clamp(2.75rem,13vw,4rem) !important; }
  body:not(:has(.hero-bg)) .hero { padding:60px 0 68px !important; }
  .section, .howitworks, .about, .platform-section, .concrete, .factory, .modules-section, .why, .tech-integrations, .seo-content { padding-block:68px !important; }
  .features-grid, .benefits-grid, .usecases-grid, .related-grid { grid-template-columns:1fr !important; }
  .cta-banner { width:calc(100% - 28px) !important; margin:50px auto !important; border-radius:22px !important; }
  .footer-grid { grid-template-columns:1fr !important; gap:38px !important; }
  .footer-brand-logo { height:64px !important; }
  .cookie-banner { right:14px; bottom:14px; width:calc(100% - 28px); }
  .cookie-actions { flex-direction:column-reverse; }
  .partner-section { padding:22px 0; }
  .partner-callout { grid-template-columns:auto 1fr; padding:20px; }
  .partner-link { grid-column:1/-1; margin-left:68px; white-space:normal; }
  .pc-screen-frame { padding:7px; border-radius:17px; }
  .pc-screen-frame figcaption { padding:14px 8px 7px; }
  .pc-screen-header { text-align:left; }
  .pc-screen-callout { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
