:root{
  --bg:#ffffff;
  --surface:#f6f7f9;
  --surface2:#eef1f6;
  --text:#101828;
  --muted:#475467;
  --line:#e4e7ec;
  --brand:#1f6feb;
  --brand2:#0ea5e9;
  --shadow: 0 10px 30px rgba(16,24,40,.08);
  --radius:14px;
  --max:1180px;
}

/* Language toggle (we render both EN and DE in markup) */
.lang-en,.lang-de{display:none}
body[data-lang="en"] .lang-en{display:initial}
body[data-lang="de"] .lang-de{display:initial}
body[data-lang="en"] .lang-en.block{display:block}
body[data-lang="de"] .lang-de.block{display:block}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
img{max-width:100%;display:block}

/* Layout */
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.section{padding:56px 0}
.section.sm{padding:36px 0}
.grid{display:grid;gap:20px}

/* Header */
.topbar{background:linear-gradient(90deg, rgba(31,111,235,.06), rgba(14,165,233,.06));border-bottom:1px solid var(--line)}
.topbar .container{display:flex;align-items:center;justify-content:space-between;padding:10px 20px}
.topbar .meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.topbar .meta a{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:12px;background:rgba(255,255,255,.7);border:1px solid var(--line)}

.header{position:sticky;top:0;background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);z-index:50}
.header .container{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:14px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:64px;height:auto}

.nav{display:flex;align-items:center;gap:14px}
.nav a{font-size:14px;color:var(--muted);padding:10px 10px;border-radius:10px}
.nav a.active{color:var(--text);background:var(--surface)}

.dropdown{position:relative}
.dropdown > button{
  border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px;
  color:var(--muted);font-size:14px;cursor:pointer
}
.dropdown-menu{
  position:absolute;right:0;top:46px;min-width:260px;background:var(--bg);
  border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);
  padding:10px;display:none
}
.dropdown-menu a{display:block;padding:10px 12px;border-radius:10px;color:var(--muted)}
.dropdown-menu a:hover{background:var(--surface);color:var(--text)}
.dropdown.open .dropdown-menu, .dropdown.open .drop{display:block}

.lang{
  display:flex;align-items:center;gap:8px
}
.lang button{
  border:1px solid var(--line);background:var(--bg);border-radius:12px;
  padding:8px 12px;font-size:13px;color:var(--muted);cursor:pointer
}
.lang button.active{border-color:rgba(31,111,235,.35);background:rgba(31,111,235,.08);color:var(--text)}

.mobile-toggle{display:none;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;cursor:pointer}

.mobile-panel{
  display:none;border-top:1px solid var(--line)
}
.mobile-panel .container{padding:12px 20px 18px}
.mobile-links{display:grid;gap:8px}
.mobile-links a{padding:12px 12px;border-radius:12px;background:var(--surface);color:var(--muted)}
.mobile-links a:hover{color:var(--text)}

/* Hero */
.hero{padding:54px 0 18px}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:stretch}
.hero h1{font-size:46px;line-height:1.1;margin:0 0 14px}
.hero p{margin:0 0 20px;color:var(--muted);font-size:16px;max-width:58ch}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:14px;padding:12px 16px;font-weight:600;font-size:14px;border:1px solid var(--line);background:var(--bg);cursor:pointer}
.btn.primary{background:linear-gradient(90deg, var(--brand), var(--brand2));border-color:transparent;color:#fff}
.btn.primary:hover{filter:brightness(.98)}
.btn:hover{box-shadow:0 8px 24px rgba(16,24,40,.10)}

.hero-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:linear-gradient(180deg, #fff, #fbfbfd)}
.hero-card .img{height:100%;min-height:340px;position:relative}
.hero-card .img img{width:100%;height:100%;object-fit:cover}
.hero-card .badge{
  position:absolute;left:16px;top:16px;background:rgba(255,255,255,.88);
  border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:12px;color:var(--muted)
}

/* Cards */
.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);box-shadow:0 1px 0 rgba(16,24,40,.03)}
.card.pad{padding:22px}
.card h3{margin:0 0 10px;font-size:18px}
.card p{margin:0;color:var(--muted)}

.feature-grid{grid-template-columns:repeat(3,1fr)}
.icon{
  width:44px;height:44px;border-radius:14px;background:rgba(31,111,235,.10);
  display:flex;align-items:center;justify-content:center;border:1px solid rgba(31,111,235,.14)
}
.icon svg{width:22px;height:22px}

/* Split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center}
.kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:12px;background:rgba(14,165,233,.10);border:1px solid rgba(14,165,233,.18);color:var(--muted);font-size:13px}
.h2{font-size:34px;line-height:1.15;margin:12px 0 12px}
.list{display:grid;gap:10px;margin-top:14px}
.list .li{display:flex;gap:10px;color:var(--muted)}
.list .dot{width:10px;height:10px;border-radius:99px;background:rgba(31,111,235,.35);margin-top:7px}

.media{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.media img{width:100%;height:360px;object-fit:cover}

/* Two-photo block */
.two-photos{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.two-photos .media img{height:320px}

/* Testimonials */
.testimonials{grid-template-columns:repeat(3,1fr)}
.quote{display:flex;flex-direction:column;gap:14px}
.quote .who{display:flex;align-items:center;gap:12px;margin-top:6px}
.avatar{width:44px;height:44px;border-radius:999px;background:var(--surface2);border:1px solid var(--line)}
.small{font-size:13px;color:var(--muted)}

/* Forms */
.form{display:grid;gap:12px}
.field{display:grid;gap:6px}
label{font-size:13px;color:var(--muted)}
input,textarea,select{
  width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 12px;font-size:14px;background:#fff
}
textarea{min-height:140px;resize:vertical}

/* Footer */
.footer{border-top:1px solid var(--line);background:linear-gradient(180deg, rgba(31,111,235,.05), rgba(14,165,233,.03))}
.footer .container{padding:28px 20px;display:grid;gap:16px}
.footer .cols{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:16px}
.footer .cols a{color:var(--muted)}
.footer .cols a:hover{color:var(--text)}
.footer .legal{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted)}

/* Cookie */
.cookie{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:100;
  max-width:980px;margin:0 auto;display:none
}
.cookie .inner{
  border:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter: blur(12px);
  border-radius:18px;box-shadow:var(--shadow);padding:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px
}
.cookie .text{color:var(--muted);font-size:13px;max-width:82ch}
.cookie .actions{display:flex;gap:10px;flex-wrap:wrap}

/* Reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease, transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* Page hero */
.page-hero{padding:34px 0 0}
.breadcrumbs{font-size:13px;color:var(--muted)}
.page-hero h1{margin:10px 0 0;font-size:38px}
.page-hero p{color:var(--muted);max-width:72ch}

/* Page hero with optional image */
.page-hero .hero-line{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:center;margin-top:10px}
.page-hero .hero-line .media{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff}
.page-hero .hero-line .media img{width:100%;height:240px;object-fit:cover;display:block}

/* Responsive */
@media (max-width: 980px){
  .page-hero .hero-line{grid-template-columns:1fr;}
  .page-hero .hero-line .media img{height:200px}
  .hero .wrap{grid-template-columns:1fr;}
  .feature-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .testimonials{grid-template-columns:1fr}
  .footer .cols{grid-template-columns:1fr}
  .two-photos{grid-template-columns:1fr}
  .hero h1{font-size:40px}
}
@media (max-width: 860px){
  .nav{display:none}
  .mobile-toggle{display:inline-flex}
  .mobile-panel.open{display:block}
}

/* Pills / small chips */
.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.7);
  border:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}

/* Brand text */
.brand-title{font-weight:700;letter-spacing:.1px;font-size:14px;line-height:1.25}
.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}
.brand > div{max-width:340px}

/* Dropdown trigger + panel (HTML uses .drop) */
.dropdown{position:relative}
.dropdown .dropbtn{
  border:1px solid var(--line);
  background:var(--bg);
  border-radius:12px;
  padding:10px 12px;
  color:var(--muted);
  font-size:14px;
  cursor:pointer;
}
.dropdown .dropbtn:hover{box-shadow:0 8px 24px rgba(16,24,40,.08)}
.dropdown-menu, .drop{
  position:absolute;
  left:0;
  top:48px;
  min-width:260px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:var(--shadow);
  padding:10px;
  display:none;
}
.dropdown-menu a, .drop a{display:block;padding:10px 12px;border-radius:10px;color:var(--muted)}
.dropdown-menu a:hover, .drop a:hover{background:var(--surface);color:var(--text)}

/* Open dropdown on hover (desktop) */
@media (min-width: 861px){
  .dropdown:hover .drop{display:block}
}

/* Mobile panel links */
.mobile-panel .container{
  display:grid;
  gap:8px;
}
.mobile-panel .container a{
  padding:12px 12px;
  border-radius:12px;
  background:var(--surface);
  color:var(--muted);
}
.mobile-panel .container a:hover{color:var(--text)}

/* Hero extras */
.hero .wrap{grid-template-columns:1.05fr .95fr}
.visual{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff}
.visual img{width:100%;height:100%;min-height:340px;object-fit:cover}

.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.kpi{border:1px solid var(--line);border-radius:14px;padding:12px;background:linear-gradient(180deg,#fff,#fbfbfd)}
.kpi strong{display:block;font-size:13px}
.kpi div{font-size:12px;color:var(--muted);margin-top:4px}

.steps{display:grid;gap:10px;margin-top:10px}
.step{display:grid;gap:2px}
.step strong{font-size:14px}
.step div{color:var(--muted);font-size:14px}

.img-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);width:100%;height:360px;object-fit:cover}

/* Feature tiles (used on Home) */
.feature-grid{display:grid;gap:16px}
.feature{
  display:block;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  background:#fff;
  box-shadow:0 1px 0 rgba(16,24,40,.03);
  transition:transform .18s ease, box-shadow .18s ease;
}
.feature h4{margin:0 0 8px;font-size:16px}
.feature p{margin:0;color:var(--muted)}
.feature:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(16,24,40,.08)}

/* Quotes */
.quote p{margin:0;color:var(--muted)}
.quote strong{font-size:13px}

/* Prevent huge blank areas due to accidental empty sections */
main section:empty{display:none}

/* Better header spacing on small screens */
@media (max-width: 980px){
  .brand img{width:120px}
  .brand > div{max-width:240px}
  .kpis{grid-template-columns:1fr}
}

/* Cookie banner (HTML structure) */
.cookie{display:none}
.cookie.show{display:block}
.cookie{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:100;
  max-width:980px;
  margin:0 auto;
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:16px;
  display:none;
}
.cookie.show{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.cookie .text{color:var(--muted);font-size:13px;max-width:82ch}
.cookie .actions{display:flex;gap:10px;flex-wrap:wrap}

/* Button variants used in HTML */
.btn.secondary{background:var(--bg)}
.btn.ghost{background:transparent}


/* Header layout override for cleaner alignment */
.header .container{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:18px;
}
.brand{min-width:240px}
.nav{justify-content:center;flex-wrap:nowrap;gap:10px;white-space:nowrap}
.nav a{padding:10px 10px}

@media (max-width: 1024px){
  .brand{min-width:200px}
  .nav a{padding:9px 8px;font-size:13px}
  .dropdown .dropbtn{padding:9px 10px;font-size:13px}
}

/* Ensure feature tiles lay out nicely */
@media (min-width: 981px){
  .feature-grid{grid-template-columns:repeat(3,1fr)}
}
.logo{width:190px;height:auto;object-fit:contain;}

@media (max-width: 720px){
  .logo{width:150px;}
}

/* --- Refinements (Jan 2026) --- */
.hero-card{overflow:hidden;}
.footer .links{display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.footer .links a{display:inline-block;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:center;}

/* Keep hero image compact on large screens */
.hero-card img{width:100%;height:340px;object-fit:cover;display:block;}

@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-card img{height:260px;}
}


/* Fullscreen loader */
.page-loader{
  position: fixed;
  inset: 0;
  background: #ffffff;
  display: grid;
  place-items: center;
  z-index: 99999;
  opacity: 1;
  visibility: visible;
  transition: opacity .35s ease, visibility .35s ease;
}

.page-loader.is-hidden{
  opacity: 0;
  visibility: hidden;
}

.page-loader__inner{
  display: grid;
  place-items: center;
}

.page-loader__logo{
  width: 220px;
  max-width: 70vw;
  height: auto;
  animation: loaderPulse 1.1s ease-in-out infinite;
}

@keyframes loaderPulse{
  0%,100% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.03); opacity: 1; }
}
