*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cyan:#00E5FF;
  --cyan-dim:#00B8CC;
  --cyan-dark:#007A88;
  --cyan-wash:#E0FAFF;
  --gray:#A0A4A8;
  --gray-light:#D6D8DA;
  --ink:#0D1117;
  --ink-mid:#1C2333;
  --ink-soft:#2D3748;
  --white:#FFFFFF;
  --stone:#F5F7FA;
  --stone-mid:#E8EBEF;
  --sans:'DM Sans',system-ui,sans-serif;
  --radius:8px;
  --radius-lg:14px;
}
html{scroll-behavior:smooth;font-size:110%}
body{font-family:var(--sans);background:var(--stone);color:var(--ink);overflow-x:hidden;line-height:1.65}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 48px;height:64px;
  background:rgba(13,17,23,0.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(0,229,255,0.1);
}
.nav-logo img{height:46px}
.nav-links{display:flex;gap:28px;list-style:none}
.nav-links a{font-size:14.5px;color:rgba(255,255,255,0.5);transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--cyan)}
.nav-cta{
  background:transparent;color:var(--cyan);
  border:1px solid rgba(0,229,255,0.5);
  cursor:pointer;padding:8px 20px;border-radius:4px;
  font-size:13px;font-weight:500;font-family:var(--sans);
  transition:all .2s;
}
.nav-cta:hover{background:var(--cyan);color:var(--ink);border-color:var(--cyan)}

/* PAGE WRAP */
.page{padding-top:64px;min-height:100vh}

/* HERO DARK */
.hero-dark{
  background:var(--ink);
  padding:80px 60px;
  position:relative;overflow:hidden;
}
.hero-dark::before{
  content:'';position:absolute;top:-200px;right:-200px;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,229,255,0.08) 0%,transparent 70%);
  pointer-events:none;
}
.hero-dark::after{
  content:'';position:absolute;bottom:-100px;left:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,184,204,0.05) 0%,transparent 70%);
  pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1100px;margin:0 auto;position:relative;z-index:1}
.hero-eyebrow{
  font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--cyan);margin-bottom:20px;
  display:flex;align-items:center;gap:10px;
}
.hero-eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--cyan);opacity:0.6}
.hero-dark h1{
  font-size:clamp(37px,4vw,57px);font-weight:400;
  color:var(--white);line-height:1.15;margin-bottom:22px;letter-spacing:-0.5px;
}
.hero-dark h1 strong{color:var(--cyan);font-weight:500}
.hero-sub{font-size:16.5px;font-weight:300;color:rgba(255,255,255,0.55);line-height:1.8;margin-bottom:36px;max-width:440px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-cyan{
  background:var(--cyan);color:var(--ink);border:none;
  cursor:pointer;padding:12px 28px;border-radius:4px;
  font-size:15.5px;font-weight:600;font-family:var(--sans);
  transition:all .2s;
}
.btn-cyan:hover{background:var(--cyan-dim);transform:translateY(-1px)}
.btn-ghost{
  background:transparent;color:rgba(255,255,255,0.7);
  border:1px solid rgba(255,255,255,0.2);
  cursor:pointer;padding:12px 28px;border-radius:4px;
  font-size:14px;font-family:var(--sans);transition:all .2s;
}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}

/* SCAN CARD */
.scan-card{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(0,229,255,0.15);
  border-radius:var(--radius-lg);
  padding:28px;
}
.scan-label{
  font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--gray);margin-bottom:16px;
  display:flex;align-items:center;justify-content:space-between;
}
.scan-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.4;transform:scale(0.7)}}
.scan-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:20px;border-top:1px solid rgba(0,229,255,0.1)}
.scan-stat{padding:14px 10px;text-align:center;border-right:1px solid rgba(0,229,255,0.1)}
.scan-stat:last-child{border-right:none}
.scan-num{font-size:20px;font-weight:500;color:var(--cyan);display:block}
.scan-lbl{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--gray);margin-top:3px}

/* SECTION */
.section{padding:90px 60px;max-width:1200px;margin:0 auto}
.section-dark{background:var(--ink);padding:90px 60px}
.section-dark .section-inner{max-width:1100px;margin:0 auto}
.eyebrow{
  font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--cyan-dim);margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:'';display:block;width:18px;height:1px;background:var(--cyan-dim)}
.section-title{font-size:clamp(28px,3vw,40px);font-weight:400;color:var(--ink);line-height:1.2;margin-bottom:8px}
.section-title em{font-style:italic;color:var(--cyan-dim)}
.section-title.light{color:var(--white)}
.section-title.light em{color:var(--cyan)}
.section-desc{font-size:15px;font-weight:300;color:var(--ink-soft);line-height:1.8}
.section-desc.light{color:rgba(255,255,255,0.5)}
.section-header{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:52px;align-items:end}

/* CARDS */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--stone-mid);border-radius:var(--radius-lg);overflow:hidden}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:48px}
.card{background:var(--white);padding:32px 28px;transition:background .2s}
.card:hover{background:var(--cyan-wash)}
.card-num{font-size:13px;font-weight:500;letter-spacing:1.5px;color:var(--cyan-dim);margin-bottom:18px;font-style:italic}
.card-icon{
  width:38px;height:38px;border:1px solid var(--stone-mid);border-radius:8px;
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
  transition:border-color .2s,background .2s;
}
.card:hover .card-icon{border-color:var(--cyan-dim);background:var(--white)}
.card h3{font-size:16.5px;font-weight:500;color:var(--ink);margin-bottom:9px}
.card p{font-size:13px;font-weight:300;color:var(--ink-soft);line-height:1.7}

/* DARK CARD */
.dark-card{
  background:rgba(255,255,255,0.04);border:1px solid rgba(0,229,255,0.1);
  border-radius:var(--radius);padding:28px;
}
.dark-card-num{font-size:35px;font-weight:400;color:var(--cyan);display:block;margin-bottom:4px;letter-spacing:-1px}
.dark-card-lbl{font-size:12px;color:rgba(255,255,255,0.4);line-height:1.5}

/* TAGS */
.tags{display:flex;flex-wrap:wrap;gap:10px}
.tag{
  background:var(--white);border:1px solid var(--stone-mid);border-radius:4px;
  padding:7px 14px;font-size:13px;font-weight:400;color:var(--ink-soft);
  cursor:pointer;transition:all .2s;
}
.tag:hover,.tag.featured{background:var(--ink);color:var(--cyan);border-color:var(--ink)}

/* CONTACT */
.contact-row{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--stone-mid)}
.contact-row:first-of-type{border-top:1px solid var(--stone-mid)}
.contact-icon{width:36px;height:36px;flex-shrink:0;background:var(--cyan-wash);border-radius:8px;display:flex;align-items:center;justify-content:center}
.contact-lbl{font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--gray);margin-bottom:3px}
.contact-val{font-size:14px;color:var(--ink)}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:12px;font-weight:500;color:var(--gray);margin-bottom:5px;letter-spacing:.3px}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:11px 14px;font-size:14px;font-family:var(--sans);font-weight:300;
  border:1px solid var(--stone-mid);border-radius:var(--radius);
  background:var(--stone);color:var(--ink);outline:none;transition:all .2s;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--cyan-dim);background:var(--white)}
.form-group textarea{height:90px;resize:vertical}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn-submit{
  width:100%;background:var(--cyan);color:var(--ink);border:none;
  cursor:pointer;padding:13px;border-radius:4px;
  font-size:14px;font-weight:600;font-family:var(--sans);transition:all .2s;margin-top:6px;
}
.btn-submit:hover{background:var(--cyan-dim);transform:translateY(-1px)}

/* PAGE HERO SIMPLE */
.page-hero{
  background:var(--ink);padding:72px 60px 60px;
  border-bottom:1px solid rgba(0,229,255,0.08);
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;top:-150px;right:-150px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,229,255,0.06) 0%,transparent 70%);
}
.page-hero-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}
.page-hero h1{font-size:clamp(33px,3.5vw,48px);font-weight:400;color:var(--white);letter-spacing:-.5px}
.page-hero h1 strong{color:var(--cyan);font-weight:500}
.page-hero p{font-size:15px;font-weight:300;color:rgba(255,255,255,0.5);margin-top:12px;max-width:550px;line-height:1.8}

/* FOOTER */
footer{
  background:var(--ink);border-top:1px solid rgba(0,229,255,0.08);
  padding:44px 60px;display:flex;align-items:center;justify-content:space-between;
}
footer img{height:34px}
.footer-info{font-size:13px;font-weight:300;color:rgba(255,255,255,0.3);text-align:center;line-height:1.8}
.footer-info a{color:rgba(0,229,255,0.5);transition:color .2s}
.footer-info a:hover{color:var(--cyan)}
.footer-copy{font-size:12px;color:rgba(255,255,255,0.2)}

/* ANIMATIONS */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
.fade-up:nth-child(2){transition-delay:.1s}
.fade-up:nth-child(3){transition-delay:.2s}
.fade-up:nth-child(4){transition-delay:.3s}
.fade-up:nth-child(5){transition-delay:.4s}
.fade-up:nth-child(6){transition-delay:.5s}

/* PROJECTS */
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.project-card{
  background:var(--white);border-radius:var(--radius-lg);
  border:1px solid var(--stone-mid);overflow:hidden;
  transition:transform .2s,border-color .2s;
}
.project-card:hover{transform:translateY(-3px);border-color:var(--cyan-dim)}
.project-card-top{background:var(--ink);padding:32px 24px;min-height:120px;display:flex;align-items:flex-end}
.project-card-tag{
  background:rgba(0,229,255,0.12);color:var(--cyan);
  font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;
  padding:4px 10px;border-radius:3px;
}
.project-card-body{padding:20px 24px}
.project-card-body h3{font-size:16.5px;font-weight:500;margin-bottom:8px}
.project-card-body p{font-size:13px;font-weight:300;color:var(--ink-soft);line-height:1.6}

/* ABOUT / IMPRESSUM */
.prose{font-size:16.5px;font-weight:300;color:var(--ink-soft);line-height:1.9;max-width:680px}
.prose p{margin-bottom:1rem}
.prose h3{font-size:17px;font-weight:500;color:var(--ink);margin:2rem 0 .5rem}

/* ══════════════════════════════════════════
   LANGUAGE SWITCHER
══════════════════════════════════════════ */
.lang-btn {
  background: transparent;
  border: 1px solid rgba(0,229,255,0.35);
  color: rgba(0,229,255,0.7);
  padding: 5px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--sans);
  cursor: pointer;
  letter-spacing: 1px;
  transition: all .2s;
  margin-right: 10px;
}
.lang-btn:hover, .lang-btn.active { background: var(--cyan); color: var(--ink); border-color: var(--cyan); }

/* ══════════════════════════════════════════
   HAMBURGER / MOBILE NAV
══════════════════════════════════════════ */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
}
.hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: rgba(255,255,255,0.7);
  border-radius: 2px;
  transition: all .25s;
}
.hamburger.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); background: var(--cyan); }
.hamburger.open span:nth-child(2){ opacity: 0; }
.hamburger.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); background: var(--cyan); }

.nav-mobile {
  display: none;
  position: fixed;
  top: 64px; left: 0; right: 0;
  background: rgba(13,17,23,0.98);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(0,229,255,0.1);
  padding: 16px 24px 20px;
  z-index: 99;
  flex-direction: column;
  gap: 0;
}
.nav-mobile.open { display: flex; }
.nav-mobile a {
  display: block;
  padding: 13px 0;
  font-size: 15px;
  color: rgba(255,255,255,0.7);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: color .2s;
}
.nav-mobile a:hover, .nav-mobile a.active { color: var(--cyan); }
.nav-mobile .nav-mobile-cta {
  margin-top: 16px;
  display: block;
  text-align: center;
  background: var(--cyan);
  color: var(--ink);
  padding: 12px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 14px;
}

/* ══════════════════════════════════════════
   RESPONSIVE BREAKPOINTS
══════════════════════════════════════════ */
@media (max-width: 900px) {
  nav { padding: 0 20px; }
  .nav-links, .nav-cta { display: none !important; }
  .hamburger { display: flex; }
  .lang-btn { margin-right: 6px; font-size: 11px; padding: 4px 9px; }

  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-left { padding: 60px 24px 40px; order: 1; }
  .hero-dark h1 { font-size: 32px; }
  .hero-right { padding: 24px; order: 2; }
  .hero-visual-card, .scan-card { max-width: 100%; }

  .page-hero { padding: 52px 24px 40px; }
  .page-hero h1 { font-size: 28px; }

  .section { padding: 56px 24px; }
  .section-dark { padding: 56px 24px; }
  .section-header { grid-template-columns: 1fr; gap: 16px; margin-bottom: 32px; }

  .grid-3 { grid-template-columns: 1fr; }
  .grid-2 { grid-template-columns: 1fr; gap: 28px; }
  .project-grid { grid-template-columns: 1fr; }

  .hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .hero-dark { padding: 60px 24px 40px; }

  /* Industries 2-col strip */
  div[style*="grid-template-columns:280px 1fr"] {
    display: block !important;
  }
  div[style*="grid-template-columns:280px 1fr"] > div:first-child {
    margin-bottom: 24px;
  }

  .two-col, .contact { grid-template-columns: 1fr !important; gap: 32px; }
  .form-grid { grid-template-columns: 1fr; }

  .glossar-layout { grid-template-columns: 1fr; padding: 24px; }
  .alpha-nav { position: static; margin-bottom: 28px; }

  footer { flex-direction: column; gap: 16px; text-align: center; padding: 32px 24px; }

  .services { padding: 56px 24px; }
  .services-grid { grid-template-columns: 1fr; }

  .about { grid-template-columns: 1fr; padding: 56px 24px; gap: 36px; }
  .about-facts { grid-template-columns: 1fr 1fr; }

  .contact { padding: 56px 24px; }

  /* Industries strip on index */
  div.section-dark { padding: 56px 24px; }
  .tags { gap: 8px; }

  /* Stats bar */
  .stats { grid-template-columns: 1fr 1fr; }
  .stat:nth-child(2) { border-right: none; }
  .stat:nth-child(3) { border-top: 1px solid var(--stone-mid); }
}

@media (max-width: 500px) {
  .hero-dark h1 { font-size: 26px; }
  .page-hero h1 { font-size: 22px; }
  .hero-btns { flex-direction: column; }
  .hero-btns .btn-cyan, .hero-btns .btn-ghost { text-align: center; }
  .about-facts { grid-template-columns: 1fr; }
  .scan-stats { grid-template-columns: 1fr 1fr 1fr; }
  .alpha-letters { gap: 4px; }
  .alpha-letter { width: 28px; height: 28px; font-size: 12px; }
  .project-card-top { min-height: 100px !important; }
}

/* ══ LANGUAGE TOGGLE ══ */
.de { display: block; }
.en { display: none;  }
body.lang-en .de { display: none;  }
body.lang-en .en { display: block; }

/* inline elements */
span.de, a.de, strong.de, em.de, li.de { display: inline; }
span.en, a.en, strong.en, em.en, li.en { display: none;   }
body.lang-en span.de, body.lang-en a.de,
body.lang-en strong.de, body.lang-en em.de,
body.lang-en li.de { display: none;   }
body.lang-en span.en, body.lang-en a.en,
body.lang-en strong.en, body.lang-en em.en,
body.lang-en li.en { display: inline; }

/* table-like elements stay their display type */
div.de, div.en { display: block; }
body.lang-en div.de { display: none; }
body.lang-en div.en { display: block; }
