/* === LOCAL GOOGLE FONTS (DSGVO-konform) === */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/dm-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/dm-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/dm-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/dm-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/dm-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/dm-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/outfit-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/outfit-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/outfit-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/outfit-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/outfit-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/outfit-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --bg: #0a0c10;
  --bg-subtle: #0f1117;
  --surface: #15171e;
  --surface-hover: #1a1d26;
  --border: rgba(255,255,255,0.06);
  --border-hover: rgba(232,177,0,0.2);
  --text: #eeeef0;
  --text-muted: #8b8fa0;
  --accent: #d4a012;
  --accent-bright: #f0c030;
  --accent-glow: rgba(212,160,18,0.12);
  --accent-glow-strong: rgba(212,160,18,0.25);
}

/* === LIGHT THEME === */
[data-theme="light"] {
  --bg: #f2efe8;
  --bg-subtle: #e9e5dd;
  --surface: #ffffff;
  --surface-hover: #f7f5f0;
  --border: rgba(0,0,0,0.08);
  --border-hover: rgba(184,136,14,0.3);
  --text: #1a1c20;
  --text-muted: #55585f;
  --accent: #b08a0e;
  --accent-bright: #c89e15;
  --accent-glow: rgba(184,136,14,0.1);
  --accent-glow-strong: rgba(184,136,14,0.2);
}

/* Touch-Optimierung: 300ms Delay entfernen */
a,button,input,select,textarea,summary,.mob-tog,.faq-item,.btn,.wa-float,#back-to-top,.teaser-card,.srv,.adv,.ticker-item { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }

/* Light mode overrides for hardcoded colors */
[data-theme="light"] body { background:var(--bg); }

/* === THEME TRANSITION === */
body.theme-transition,body.theme-transition *,body.theme-transition *::before,body.theme-transition *::after {
  transition:background-color 0.45s ease,color 0.45s ease,border-color 0.45s ease,box-shadow 0.45s ease,fill 0.45s ease,stroke 0.45s ease!important;
}
[data-theme="light"] nav { background:rgba(242,239,232,0.96); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
[data-theme="light"] nav.scrolled { background:rgba(242,239,232,0.98); backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); box-shadow:0 4px 20px rgba(0,0,0,0.06); border-bottom-color:var(--border); }
[data-theme="light"] .nav-links { background:rgba(242,239,232,0.97); }
[data-theme="light"] .btn-ghost { background:rgba(0,0,0,0.03); border-color:var(--border); color:var(--text); }
[data-theme="light"] .btn-ghost:hover { background:rgba(0,0,0,0.06); }
[data-theme="light"] .logo-icon { color:#fff; }
[data-theme="light"] .btn-primary { color:#fff; }
[data-theme="light"] .nav-cta { color:#fff!important; }
[data-theme="light"] #back-to-top { background:rgba(255,255,255,0.85); border-color:var(--border); color:var(--text); }
[data-theme="light"] .mob-tog span { background:var(--text); }
[data-theme="light"] .skip-link { color:#fff; }
[data-theme="light"] .brand-ticker::before { background:linear-gradient(to right,var(--bg) 0%,transparent 100%); }
[data-theme="light"] .brand-ticker::after { background:linear-gradient(to left,var(--bg) 0%,transparent 100%); }
[data-theme="light"] .cursor-glow { display:none; }
[data-theme="light"] .up-th-rm { background:rgba(0,0,0,0.6); color:#fff; }
[data-theme="light"] .f-row input,
[data-theme="light"] .f-row select,
[data-theme="light"] .f-row textarea { background:var(--surface); }

/* === THEME TOGGLE (Slider) === */
.theme-tog { position:relative; width:52px; height:28px; background:var(--surface); border:1px solid var(--border); border-radius:100px; cursor:pointer; flex-shrink:0; padding:0; transition:background 0.3s,border-color 0.3s; }
.theme-tog:hover { border-color:var(--border-hover); }
.theme-tog .tog-knob { position:absolute; top:3px; left:3px; width:20px; height:20px; background:var(--accent); border-radius:50%; transition:transform 0.3s cubic-bezier(0.4,0,0.2,1); display:flex; align-items:center; justify-content:center; }
.theme-tog .ico-sun, .theme-tog .ico-moon { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:12px; height:12px; transition:opacity 0.3s; }
.theme-tog .ico-sun { opacity:1; }
.theme-tog .ico-moon { opacity:0; }
[data-theme="light"] .theme-tog .tog-knob { transform:translateX(24px); }
[data-theme="light"] .theme-tog .ico-sun { opacity:0; }
[data-theme="light"] .theme-tog .ico-moon { opacity:1; }

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; -webkit-font-smoothing:antialiased; opacity:0; transition:opacity 0.5s cubic-bezier(0.16,1,0.3,1); }
body.loaded { opacity:1; }

/* === NAV === */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:1.1rem clamp(1.5rem,4vw,3rem);
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(10,12,16,0.4);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,0.03);
  transition:background 0.5s cubic-bezier(0.16,1,0.3,1),border-color 0.5s ease,padding 0.4s ease,box-shadow 0.5s ease;
}
nav.scrolled {
  background:rgba(10,12,16,0.85);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border);
  padding-top:0.8rem; padding-bottom:0.8rem;
  box-shadow:0 8px 32px rgba(0,0,0,0.3);
}
.logo { display:flex; align-items:center; gap:0.85rem; text-decoration:none; transition:transform 0.35s cubic-bezier(0.16,1,0.3,1); }
@media(hover:hover){ .logo:hover { transform:scale(1.03); }
.logo:hover .logo-icon { box-shadow:0 0 20px rgba(212,160,18,0.3); } }
.logo-icon {
  width:44px; height:44px; background:var(--accent); border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Outfit',sans-serif; font-size:1.6rem; color:var(--bg); font-weight:800;
  transition:box-shadow 0.35s ease;
}
.logo-text { font-family:'Outfit',sans-serif; font-size:1.35rem; font-weight:700; letter-spacing:-0.02em; color:var(--text); line-height:1.15; }
.logo-text span { display:block; font-size:0.65rem; letter-spacing:0.18em; color:var(--accent); font-family:'DM Sans',sans-serif; font-weight:600; text-transform:uppercase; margin-top:1px; }
.nav-links { display:flex; gap:2.2rem; list-style:none; align-items:center; }
.nav-links a { text-decoration:none; color:var(--text-muted); font-weight:500; font-size:0.85rem; letter-spacing:0.04em; transition:color 0.3s ease; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:50%; width:0; height:1.5px; background:var(--accent); transition:width 0.35s cubic-bezier(0.16,1,0.3,1),left 0.35s cubic-bezier(0.16,1,0.3,1); border-radius:1px; }
.nav-links a.active::after { width:100%; left:0; }
.nav-links a.active { color:var(--text); }
@media(hover:hover){ .nav-links a:hover::after { width:100%; left:0; } .nav-links a:hover { color:var(--text); } }
.nav-cta {
  padding:0.6rem 1.4rem; background:var(--accent); color:var(--bg)!important;
  font-weight:600!important; border-radius:8px; font-size:0.85rem!important;
  transition:all 0.25s!important; letter-spacing:0!important;
}
@media(hover:hover){ .nav-cta:hover { background:var(--accent-bright)!important; transform:translateY(-1px); box-shadow:0 6px 20px var(--accent-glow-strong); } }
.mob-tog { display:none; background:var(--surface); border:1px solid var(--border); border-radius:10px; cursor:pointer; padding:0.55rem 0.65rem; min-width:44px; min-height:44px; align-items:center; justify-content:center; flex-direction:column; gap:0; transition:all 0.25s; }
.mob-tog:active { border-color:var(--accent); background:rgba(212,160,18,0.08); }
@media(hover:hover){ .mob-tog:hover { border-color:var(--accent); background:rgba(212,160,18,0.08); } }
.mob-tog span { display:block; width:20px; height:2.5px; background:var(--text); margin:3px 0; border-radius:2px; transition:all 0.3s cubic-bezier(0.16,1,0.3,1); }
.mob-tog.open span:nth-child(1) { transform:rotate(45deg) translate(4px,4px); }
.mob-tog.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.mob-tog.open span:nth-child(3) { transform:rotate(-45deg) translate(4px,-4px); }

/* === HERO (Homepage) === */
.hero {
  min-height:100vh; min-height:100dvh;
  display:flex; align-items:center; position:relative;
  padding:clamp(5.5rem,10vw,8rem) clamp(1.5rem,4vw,3rem) clamp(3rem,6vw,5rem);
  overflow:hidden;
}
.hero-truck {
  position:absolute; right:-2%; top:48%; transform:translateY(-50%);
  width:58%; max-width:820px; height:auto; object-fit:contain;
  pointer-events:none; z-index:0; opacity:0;
  animation:truckReveal 2.8s 0.5s ease-out forwards;
  filter:brightness(0.5) contrast(1.2) saturate(0.7);
  -webkit-mask-image:radial-gradient(ellipse 85% 80% at 65% 50%, rgba(0,0,0,0.9) 15%, rgba(0,0,0,0.5) 50%, transparent 80%);
  mask-image:radial-gradient(ellipse 85% 80% at 65% 50%, rgba(0,0,0,0.9) 15%, rgba(0,0,0,0.5) 50%, transparent 80%);
}
@keyframes truckReveal {
  0%{opacity:0;transform:translateY(-52%) translateX(80px) scale(1.05);filter:brightness(0.15) contrast(1.2) saturate(0.7)}
  50%{opacity:0.3}
  100%{opacity:0.55;transform:translateY(-52%) translateX(0) scale(1);filter:brightness(0.5) contrast(1.2) saturate(0.7)}
}
[data-theme="light"] .hero-truck {
  filter:brightness(0.95) contrast(1.05) saturate(0.85);
  -webkit-mask-image:radial-gradient(ellipse 85% 80% at 65% 50%, rgba(0,0,0,0.7) 10%, rgba(0,0,0,0.3) 50%, transparent 78%);
  mask-image:radial-gradient(ellipse 85% 80% at 65% 50%, rgba(0,0,0,0.7) 10%, rgba(0,0,0,0.3) 50%, transparent 78%);
  animation:truckRevealLight 2.8s 0.5s ease-out forwards;
}
@keyframes truckRevealLight {
  0%{opacity:0;transform:translateY(-52%) translateX(80px) scale(1.05);filter:brightness(0.4) contrast(1.05) saturate(0.85)}
  50%{opacity:0.4}
  100%{opacity:0.7;transform:translateY(-52%) translateX(0) scale(1);filter:brightness(0.95) contrast(1.05) saturate(0.85)}
}
.hero-glow {
  position:absolute; top:-20%; right:-10%; width:700px; height:700px;
  background:radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);
  pointer-events:none;
}
.hero-content { position:relative; z-index:1; max-width:720px; }

/* Hero floating element */
.hero-float {
  position:absolute; right:3%; top:50%; transform:translateY(-50%);
  width:48%; max-width:560px; z-index:0; pointer-events:none;
  animation:floatEnter 1.2s 0.4s ease-out forwards; opacity:0;
}
@keyframes floatEnter {
  0%{opacity:0;transform:translateY(-50%) translateX(80px) scale(0.92)}
  100%{opacity:1;transform:translateY(-50%) translateX(0) scale(1)}
}
.float-main { animation:floatY 6s ease-in-out infinite; perspective:800px; }
@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
.float-card {
  background:rgba(21,23,30,0.82);
  backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px);
  border:1px solid rgba(212,160,18,0.25); border-radius:18px; padding:1.6rem;
  box-shadow:0 24px 64px rgba(0,0,0,0.55),0 0 100px rgba(212,160,18,0.1),inset 0 1px 0 rgba(255,255,255,0.04);
  transform:rotateY(-4deg) rotateX(2deg);
}
.float-card-header {
  display:flex; align-items:center; gap:0.6rem;
  padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid rgba(255,255,255,0.05);
}
.float-card-header svg { width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:1.5; }
.float-card-header span { font-family:'Outfit',sans-serif; font-size:0.82rem; font-weight:600; color:var(--text-muted); letter-spacing:0.06em; }
.float-dot { width:8px; height:8px; border-radius:50%; background:#22c55e; margin-left:auto; box-shadow:0 0 8px rgba(34,197,94,0.5); animation:pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;box-shadow:0 0 8px rgba(34,197,94,0.5)} 50%{opacity:0.6;box-shadow:0 0 14px rgba(34,197,94,0.8)} }
.float-map { position:relative; height:140px; margin-bottom:1rem; overflow:hidden; border-radius:10px; background:rgba(10,12,16,0.5); }
.float-map svg { width:100%; height:100%; }
.float-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0.8rem; }
.float-stat { text-align:center; padding:0.7rem 0.4rem; background:rgba(212,160,18,0.05); border:1px solid rgba(212,160,18,0.1); border-radius:10px; }
.float-stat-val { display:block; font-family:'Outfit',sans-serif; font-size:1.3rem; font-weight:800; color:var(--accent); line-height:1; }
.float-stat-label { display:block; font-size:0.6rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; margin-top:0.3rem; font-weight:600; }
.float-activity { margin-top:1rem; display:flex; flex-direction:column; gap:0.5rem; }
.float-activity-item {
  display:flex; align-items:center; gap:0.6rem;
  padding:0.55rem 0.8rem; background:rgba(255,255,255,0.02);
  border:1px solid rgba(255,255,255,0.04); border-radius:8px;
  font-size:0.75rem; color:var(--text-muted);
}
.float-activity-item svg { width:14px; height:14px; stroke:var(--accent); fill:none; stroke-width:1.5; flex-shrink:0; }
.float-activity-item strong { color:var(--text); font-weight:600; }
.float-activity-item .time { margin-left:auto; font-size:0.65rem; opacity:0.5; }
.float-badge {
  position:absolute; background:rgba(21,23,30,0.75);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(212,160,18,0.15); border-radius:12px;
  padding:0.6rem 1rem; display:flex; align-items:center; gap:0.5rem;
  font-size:0.75rem; font-weight:600; color:var(--text);
  box-shadow:0 12px 32px rgba(0,0,0,0.3); white-space:nowrap;
}
.float-badge svg { width:16px; height:16px; stroke:var(--accent); fill:none; stroke-width:1.5; flex-shrink:0; }
.float-badge-1 { top:-8%; left:-14%; animation:floatBadge1 7s ease-in-out infinite; }
.float-badge-2 { bottom:12%; right:-6%; animation:floatBadge2 8s ease-in-out infinite; }
.float-badge-3 { top:32%; left:-18%; animation:floatBadge3 9s ease-in-out infinite; }
@keyframes floatBadge1 { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-10px) rotate(1deg)} }
@keyframes floatBadge2 { 0%,100%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(8px) rotate(-1deg)} }
@keyframes floatBadge3 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
.hero-badge {
  display:inline-flex; align-items:center; gap:0.5rem;
  padding:0.45rem 1.1rem; background:var(--accent-glow); border:1px solid rgba(212,160,18,0.18);
  border-radius:100px; font-size:0.72rem; font-weight:600; color:var(--accent-bright);
  text-transform:uppercase; letter-spacing:0.14em; margin-bottom:2rem;
}
.hero-badge svg { flex-shrink:0; }
.hero h1 {
  font-family:'Outfit',sans-serif; font-size:clamp(3rem,7.5vw,6rem);
  font-weight:800; line-height:0.95; letter-spacing:-0.03em; margin-bottom:1.5rem;
}
.hero h1 .hl { color:var(--accent); }
.hero-desc { font-size:clamp(1.05rem,1.8vw,1.2rem); color:var(--text-muted); max-width:540px; line-height:1.7; font-weight:400; margin-bottom:2.5rem; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.btn {
  padding:0.9rem 2rem; font-size:0.9rem; font-weight:600; text-decoration:none;
  border-radius:10px; transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  display:inline-flex; align-items:center; gap:0.6rem; cursor:pointer; border:none;
  font-family:'DM Sans',sans-serif; position:relative; overflow:hidden;
}
.btn::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,0.15) 0%,transparent 50%); opacity:0; transition:opacity 0.4s ease; }
@media(hover:hover){ .btn:hover::after { opacity:1; } .btn:hover svg { transform:translateX(3px); }
.btn-primary:hover { background:var(--accent-bright); transform:translateY(-3px); box-shadow:0 12px 36px var(--accent-glow-strong),0 0 60px rgba(212,160,18,0.15); }
.btn-ghost:hover { border-color:var(--border-hover); background:rgba(255,255,255,0.07); transform:translateY(-3px); box-shadow:0 12px 36px rgba(0,0,0,0.2); } }
.btn svg { transition:transform 0.35s cubic-bezier(0.16,1,0.3,1); }
.btn-primary { background:var(--accent); color:var(--bg); }
.btn-ghost { background:rgba(255,255,255,0.04); color:var(--text); border:1px solid var(--border); }
.hero-stats { display:flex; gap:clamp(2rem,4vw,3.5rem); margin-top:3rem; padding-top:2rem; border-top:1px solid var(--border); }
.stat-val { font-family:'Outfit',sans-serif; font-size:clamp(2rem,4vw,2.8rem); font-weight:800; color:var(--accent); line-height:1; letter-spacing:-0.02em; }
.stat-label { font-size:0.72rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.14em; margin-top:0.35rem; font-weight:600; }

/* === PAGE HERO (Inner pages) === */
.page-hero {
  padding:clamp(8rem,14vw,11rem) clamp(1.5rem,4vw,3rem) clamp(2rem,4vw,3rem);
  text-align:center; position:relative; overflow:hidden; background:var(--bg);
}
.page-hero h1 { animation:fadeScale 0.8s 0.1s cubic-bezier(0.16,1,0.3,1) both; }
.page-hero > p { animation:fadeScale 0.8s 0.25s cubic-bezier(0.16,1,0.3,1) both; }
.page-hero .breadcrumb { animation:fadeScale 0.6s cubic-bezier(0.16,1,0.3,1) both; }
.page-hero .hero-glow { width:500px; height:500px; top:-30%; left:50%; transform:translateX(-50%); right:auto; }
.page-hero h1 {
  font-family:'Outfit',sans-serif; font-size:clamp(2.5rem,5.5vw,4.2rem);
  font-weight:800; letter-spacing:-0.03em; line-height:1; margin-bottom:1rem;
}
.page-hero .hl { color:var(--accent); }
.page-hero > p { color:var(--text-muted); font-size:1.05rem; line-height:1.65; max-width:600px; margin:0 auto; }

/* Breadcrumb */
.breadcrumb {
  display:flex; align-items:center; gap:0.5rem; justify-content:center;
  margin-bottom:1.5rem; font-size:0.8rem;
}
.breadcrumb a { color:var(--text-muted); text-decoration:none; transition:color 0.25s; }
.breadcrumb a:hover { color:var(--accent); }
.breadcrumb .sep { color:var(--text-muted); opacity:0.4; }
.breadcrumb .current { color:var(--accent); }

/* === SECTIONS === */
section { padding:clamp(4rem,8vw,7rem) clamp(1.5rem,4vw,3rem); }
.sec-head { text-align:center; margin-bottom:clamp(3rem,5vw,4.5rem); }
.sec-tag { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.18em; color:var(--accent); font-weight:600; margin-bottom:0.75rem; }
.sec-head h2 { font-family:'Outfit',sans-serif; font-size:clamp(2.2rem,4.5vw,3.5rem); font-weight:800; letter-spacing:-0.03em; line-height:1; }
.sec-head p { color:var(--text-muted); max-width:520px; margin:1rem auto 0; font-size:1.05rem; line-height:1.65; font-weight:400; }

/* === SERVICES === */
#leistungen { background:var(--bg-subtle); }
.srv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:1140px; margin:0 auto; }
.srv {
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:2.2rem; transition:all 0.45s cubic-bezier(0.16,1,0.3,1); position:relative; overflow:hidden;
}
.srv::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--accent),var(--accent-bright),transparent); opacity:0; transition:opacity 0.45s; }
.srv::after { content:''; position:absolute; inset:0; border-radius:14px; opacity:0; transition:opacity 0.5s ease; background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(212,160,18,0.06) 0%,transparent 60%); pointer-events:none; }
@media(hover:hover){ .srv:hover { border-color:var(--border-hover); transform:translateY(-6px); box-shadow:0 20px 60px rgba(0,0,0,0.3),0 0 40px rgba(212,160,18,0.04); } }
@media(hover:hover){ .srv:hover::before { opacity:1; } .srv:hover::after { opacity:1; } }
.srv-ico {
  width:48px; height:48px; background:var(--accent-glow); border-radius:10px;
  display:flex; align-items:center; justify-content:center; margin-bottom:1.4rem;
}
.srv-ico svg { width:24px; height:24px; stroke:var(--accent); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.srv h3 { font-family:'Outfit',sans-serif; font-size:1.2rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:0.6rem; }
.srv p { color:var(--text-muted); line-height:1.6; font-size:0.92rem; }

/* === REGIONS === */
#regionen { background:var(--bg); position:relative; overflow:hidden; }
#regionen::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 50% 40% at 50% 50%,var(--accent-glow),transparent); pointer-events:none; }
.reg-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; position:relative; z-index:1; }
.reg-text h2 { font-family:'Outfit',sans-serif; font-size:clamp(2.2rem,4.5vw,3.2rem); font-weight:800; letter-spacing:-0.03em; line-height:1; margin-bottom:1.4rem; }
.reg-text h2 .hl { color:var(--accent); }
.reg-text>p { color:var(--text-muted); font-size:1.05rem; line-height:1.7; margin-bottom:2rem; }
.reg-list { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; }
.reg-item {
  display:flex; align-items:center; gap:0.65rem; padding:0.7rem 1rem;
  background:var(--surface); border:1px solid var(--border); border-radius:10px; transition:border-color 0.25s;
}
@media(hover:hover){ .reg-item:hover { border-color:var(--border-hover); } }
.reg-item svg { width:18px; height:18px; stroke:var(--accent); fill:none; stroke-width:1.5; flex-shrink:0; }
.reg-item span { font-weight:500; font-size:0.9rem; }
.globe-wrap { display:flex; align-items:center; justify-content:center; animation:globeFloat 7s ease-in-out infinite; }
@keyframes globeFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-18px)} }
.globe-svg { width:100%; max-width:460px; opacity:1; filter:drop-shadow(0 0 40px rgba(212,160,18,0.06)); }

/* === VORTEILE === */
#vorteile { background:var(--bg-subtle); }
.adv-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; max-width:1140px; margin:0 auto; }
.adv {
  text-align:center; padding:2.2rem 1.5rem; background:var(--surface);
  border:1px solid var(--border); border-radius:14px; transition:all 0.45s cubic-bezier(0.16,1,0.3,1); position:relative; overflow:hidden;
}
.adv::after { content:''; position:absolute; inset:0; border-radius:14px; opacity:0; transition:opacity 0.5s ease; background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(212,160,18,0.06) 0%,transparent 60%); pointer-events:none; }
@media(hover:hover){ .adv:hover { border-color:var(--border-hover); transform:translateY(-6px); box-shadow:0 20px 56px rgba(0,0,0,0.25),0 0 30px rgba(212,160,18,0.04); } }
@media(hover:hover){ .adv:hover::after { opacity:1; } .adv:hover .adv-ico { transform:scale(1.1) translateY(-2px); } }
.adv .adv-ico { transition:transform 0.45s cubic-bezier(0.16,1,0.3,1); }
.adv-ico {
  width:56px; height:56px; margin:0 auto 1.2rem; background:var(--accent-glow); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.adv-ico svg { width:24px; height:24px; stroke:var(--accent); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.adv h3 { font-family:'Outfit',sans-serif; font-size:1.1rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:0.6rem; }
.adv p { color:var(--text-muted); font-size:0.88rem; line-height:1.6; }

/* === KOMMISSION === */
#kommission { background:var(--bg); }
.kom-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.3fr 0.7fr; gap:3rem; align-items:start; }
.kom-lead { color:var(--text-muted); font-size:1.02rem; line-height:1.7; margin-bottom:2rem; max-width:520px; }
.kom-feats { display:flex; flex-direction:column; gap:1rem; }
.kom-feat { display:flex; gap:1.1rem; align-items:flex-start; padding:1.2rem 1.4rem; background:var(--surface); border:1px solid var(--border); border-radius:12px; transition:border-color 0.25s; }
@media(hover:hover){ .kom-feat:hover { border-color:var(--border-hover); } }
.kom-feat-ico { width:44px; height:44px; min-width:44px; background:var(--accent-glow); border-radius:10px; display:flex; align-items:center; justify-content:center; }
.kom-feat-ico svg { width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.kom-feat h3 { font-family:'Outfit',sans-serif; font-size:1.05rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:0.25rem; }
.kom-feat p { color:var(--text-muted); font-size:0.88rem; line-height:1.55; }
.kom-cta { position:sticky; top:6rem; }
.kom-cta-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:2.5rem; text-align:center; position:relative; overflow:hidden; }
.kom-cta-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--accent),transparent); }
.kom-cta-card h3 { font-family:'Outfit',sans-serif; font-size:1.3rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:0.8rem; }
.kom-cta-card p { color:var(--text-muted); font-size:0.92rem; line-height:1.6; margin-bottom:1.4rem; }
.kom-cta-card .btn-primary { width:100%; justify-content:center; }
.kom-text h2 { font-family:'Outfit',sans-serif; font-size:clamp(2rem,4vw,3rem); font-weight:800; letter-spacing:-0.03em; line-height:1; margin-bottom:1.2rem; }

/* === ANKAUF FORM === */
#ankauf { background:var(--bg); }
.ank-wrap { max-width:860px; margin:0 auto; }
.ank-intro { text-align:center; color:var(--text-muted); font-size:1.02rem; line-height:1.7; max-width:620px; margin:-1.5rem auto 3rem; }
.f-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:clamp(2rem,4vw,3rem); position:relative; overflow:hidden; }
.f-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--accent),transparent 80%); }
.f-title { font-family:'Outfit',sans-serif; font-size:1.15rem; font-weight:700; letter-spacing:0.02em; color:var(--accent); margin-bottom:1.2rem; margin-top:2rem; display:flex; align-items:center; gap:0.65rem; }
.f-title:first-of-type { margin-top:0; }
.f-title svg { width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.f-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-bottom:1.2rem; }
.f-full { grid-column:1/-1; }
.f-row label { display:block; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted); margin-bottom:0.45rem; font-weight:600; }
.f-row input,.f-row select,.f-row textarea {
  width:100%; padding:0.8rem 1rem; background:var(--bg); border:1px solid var(--border);
  border-radius:8px; color:var(--text); font-family:'DM Sans',sans-serif; font-size:0.95rem;
  transition:border-color 0.25s; outline:none; -webkit-appearance:none; appearance:none;
}
.f-row select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6f80' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.f-row input:focus,.f-row select:focus,.f-row textarea:focus { border-color:var(--accent); }
.f-row textarea { height:110px; resize:vertical; }
.f-row input::placeholder,.f-row textarea::placeholder { color:rgba(107,111,128,0.5); }
.f-submit { margin-top:2rem; display:flex; align-items:center; gap:1.4rem; }
.f-submit .btn-primary { min-width:240px; justify-content:center; }
.f-submit p { font-size:0.82rem; color:var(--text-muted); line-height:1.5; }

/* Upload */
.up-zone { border:2px dashed rgba(212,160,18,0.18); border-radius:12px; padding:2rem; text-align:center; cursor:pointer; transition:all 0.25s; background:rgba(212,160,18,0.02); }
.up-zone:hover,.up-zone.dragover { border-color:var(--accent); background:rgba(212,160,18,0.05); }
.up-ph { display:flex; flex-direction:column; align-items:center; gap:0.7rem; }
.up-ph span { color:var(--text-muted); font-size:0.92rem; }
.up-ph strong { color:var(--accent); }
.up-hint { font-size:0.75rem!important; opacity:0.5; }
.up-prev { display:flex; flex-wrap:wrap; gap:0.65rem; margin-top:1rem; }
.up-prev:empty { margin-top:0; }
.up-th { position:relative; width:88px; height:88px; border-radius:8px; overflow:hidden; border:1px solid var(--border); }
.up-th img { width:100%; height:100%; object-fit:cover; }
.up-th-rm { position:absolute; top:-6px; right:-6px; width:28px; height:28px; background:rgba(10,12,16,0.85); border:none; border-radius:50%; color:var(--text); font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background 0.2s; }
@media(hover:hover){ .up-th-rm:hover { background:#c0392b; } }

/* Form states */
.f-row input:invalid:not(:placeholder-shown),.f-row select:invalid{border-color:rgba(192,57,43,0.4)}
.f-success{text-align:center;padding:3rem 1.5rem;display:none}
.f-success h3{font-family:'Outfit',sans-serif;font-size:1.4rem;font-weight:700;margin-bottom:0.6rem;color:var(--accent)}
.f-success p{color:var(--text-muted);font-size:1rem;line-height:1.6}
.btn-primary:disabled{opacity:0.6;cursor:not-allowed;transform:none!important}

/* Custom DSGVO Checkbox */
.dsgvo-row{display:flex;align-items:flex-start;gap:0}
.dsgvo-check{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.dsgvo-label{display:flex;align-items:flex-start;gap:0.75rem;font-size:0.82rem;color:var(--text-muted);font-weight:400;cursor:pointer;line-height:1.5;text-transform:none;letter-spacing:0}
.dsgvo-box{width:22px;height:22px;min-width:22px;border:2px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all 0.25s ease;background:var(--surface);margin-top:1px}
.dsgvo-box svg{width:14px;height:14px;opacity:0;transform:scale(0);transition:all 0.2s cubic-bezier(0.16,1,0.3,1);color:#fff}
.dsgvo-check:checked+.dsgvo-label .dsgvo-box{background:var(--accent);border-color:var(--accent)}
.dsgvo-check:checked+.dsgvo-label .dsgvo-box svg{opacity:1;transform:scale(1)}
.dsgvo-check:focus-visible+.dsgvo-label .dsgvo-box{outline:2px solid var(--accent);outline-offset:2px}
.dsgvo-label:hover .dsgvo-box{border-color:var(--accent)}

/* === KONTAKT === */
#kontakt { background:var(--bg-subtle); }
.ct-bar { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; align-items:stretch; }
.ct-item { display:flex; align-items:flex-start; gap:1rem; padding:1.4rem; background:var(--surface); border:1px solid var(--border); border-radius:12px; min-height:0; }
.ct-ico { width:44px; height:44px; background:var(--accent-glow); border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ct-ico svg { width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ct-item strong { display:block; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--accent); margin-bottom:0.25rem; font-weight:600; }
.ct-item span { color:var(--text-muted); font-size:0.9rem; line-height:1.55; }
.ct-item a { color:var(--text-muted); text-decoration:none; }
.ct-hours { display:grid; grid-template-columns:auto 1fr; gap:0.15rem 0.6rem; color:var(--text-muted); font-size:0.9rem; line-height:1.55; }

/* === TESTIMONIALS === */
.review-grid { max-width:1140px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.review-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:2rem; transition:all 0.45s cubic-bezier(0.16,1,0.3,1); }
@media(hover:hover){ .review-card:hover { border-color:var(--border-hover); transform:translateY(-4px); box-shadow:0 16px 48px rgba(0,0,0,0.2); } }
.review-stars { display:flex; gap:0.3rem; margin-bottom:1rem; }
.review-stars svg { width:18px; height:18px; }
.review-text { color:var(--text-muted); font-size:0.92rem; line-height:1.65; margin-bottom:1.2rem; }
.review-author { display:flex; align-items:center; gap:0.8rem; }
.review-avatar { width:40px; height:40px; background:var(--accent-glow); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Outfit',sans-serif; font-weight:700; color:var(--accent); font-size:1rem; }
.review-author strong { font-size:0.88rem; display:block; }
.review-author .role { display:block; font-size:0.72rem; color:var(--text-muted); }
.review-score { text-align:center; margin-top:2rem; color:var(--text-muted); font-size:0.88rem; }
.review-score .big { color:var(--accent); font-family:'Outfit',sans-serif; font-size:1.6rem; font-weight:800; }

/* === FAQ === */
#faq { background:var(--bg-subtle); }
.faq-list { max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:1rem; }
.faq-item { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:1.4rem 1.6rem; cursor:pointer; transition:border-color 0.35s ease,box-shadow 0.35s ease,transform 0.35s cubic-bezier(0.16,1,0.3,1); }
@media(hover:hover){ .faq-item:hover { border-color:var(--border-hover); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,0.15); } }
.faq-item[open] { border-color:rgba(212,160,18,0.15); box-shadow:0 8px 32px rgba(0,0,0,0.2),0 0 20px rgba(212,160,18,0.03); }
.faq-item summary { font-family:'Outfit',sans-serif; font-weight:700; font-size:1.05rem; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary svg { flex-shrink:0; transition:transform 0.4s cubic-bezier(0.16,1,0.3,1); }
.faq-item[open] summary svg { transform:rotate(180deg); }
.faq-item .faq-answer { overflow:hidden; animation:faqOpen 0.4s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes faqOpen { from{opacity:0;max-height:0;transform:translateY(-8px)} to{opacity:1;max-height:300px;transform:translateY(0)} }
.faq-item p { color:var(--text-muted); font-size:0.92rem; line-height:1.65; margin-top:1rem; }

/* === TEASER GRID (Homepage) === */
.teaser-grid { max-width:1140px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.teaser-card {
  display:block; text-decoration:none; color:var(--text);
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:2.2rem; transition:all 0.45s cubic-bezier(0.16,1,0.3,1); position:relative; overflow:hidden;
}
.teaser-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--accent),var(--accent-bright),transparent); opacity:0; transition:opacity 0.45s; }
.teaser-card::after { content:''; position:absolute; inset:0; border-radius:14px; opacity:0; transition:opacity 0.5s ease; background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(212,160,18,0.06) 0%,transparent 60%); pointer-events:none; }
@media(hover:hover){
.teaser-card:hover { border-color:var(--border-hover); transform:translateY(-6px); box-shadow:0 20px 60px rgba(0,0,0,0.3),0 0 40px rgba(212,160,18,0.04); }
.teaser-card:hover::before { opacity:1; }
.teaser-card:hover::after { opacity:1; }
}
.teaser-card .link-hint svg { transition:transform 0.35s cubic-bezier(0.16,1,0.3,1); }
@media(hover:hover){ .teaser-card:hover .link-hint svg { transform:translateX(4px); } }
.teaser-card .srv-ico { margin-bottom:1.4rem; }
.teaser-card h3 { font-family:'Outfit',sans-serif; font-size:1.2rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:0.6rem; }
.teaser-card p { color:var(--text-muted); line-height:1.6; font-size:0.92rem; margin-bottom:1rem; }
.teaser-card .link-hint { color:var(--accent); font-size:0.85rem; font-weight:600; display:flex; align-items:center; gap:0.4rem; }
.teaser-card .link-hint svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }

/* === FOOTER === */
footer { background:var(--bg); border-top:1px solid var(--border); padding:2.5rem clamp(1.5rem,4vw,3rem); text-align:center; }
.ft { max-width:700px; margin:0 auto; }
.ft-logo { font-family:'Outfit',sans-serif; font-size:1.1rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:0.4rem; }
.ft-addr { color:var(--text-muted); font-size:0.82rem; margin-bottom:1rem; }
.ft-links { display:flex; flex-wrap:wrap; justify-content:center; gap:1.2rem; margin-bottom:1rem; }
.ft-links a { color:var(--text-muted); text-decoration:none; font-size:0.82rem; transition:color 0.25s; }
@media(hover:hover){ .ft-links a:hover { color:var(--accent); } .ft-main a:hover { color:#e8b828; } .ft-social a:hover { transform:scale(1.15); } }
.ft-main a { color:var(--accent); font-weight:600; }
.ft-copy { font-size:0.72rem; color:rgba(107,111,128,0.4); }
.ft-social { margin-bottom:1rem; }
.ft-social a { transition:transform 0.35s cubic-bezier(0.16,1,0.3,1); display:inline-block; }

/* === PAGE TRANSITIONS === */
.page-transition-overlay {
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  background:var(--bg);
  opacity:0; transition:opacity 0.45s cubic-bezier(0.4,0,0.2,1);
}
.page-transition-overlay.active { opacity:1; pointer-events:all; }

/* === CURSOR GLOW === */
.cursor-glow {
  position:fixed; width:600px; height:600px; pointer-events:none; z-index:0;
  background:radial-gradient(circle,rgba(212,160,18,0.035) 0%,transparent 65%);
  transform:translate(-50%,-50%); transition:opacity 0.4s ease;
  opacity:0; will-change:transform;
}
body.loaded .cursor-glow { opacity:1; }

/* === ANIMATIONS === */
@keyframes fadeUp { from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeScale { from{opacity:0;transform:translateY(24px) scale(0.97)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes slideInLeft { from{opacity:0;transform:translateX(-40px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideInRight { from{opacity:0;transform:translateX(40px)} to{opacity:1;transform:translateX(0)} }
@keyframes revealLine { from{width:0} to{width:100%} }
@keyframes wspin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

.fu { opacity:0; transform:translateY(32px) scale(0.98); transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1),transform 0.7s cubic-bezier(0.16,1,0.3,1),filter 0.7s ease; filter:blur(4px); }
.fu.v { opacity:1; transform:translateY(0) scale(1); filter:blur(0); }
.fu:nth-child(2){transition-delay:0.1s} .fu:nth-child(3){transition-delay:0.18s} .fu:nth-child(4){transition-delay:0.26s} .fu:nth-child(5){transition-delay:0.32s} .fu:nth-child(6){transition-delay:0.38s}

/* === WHATSAPP FLOAT === */
.wa-float{position:fixed;bottom:1.8rem;right:1.8rem;z-index:90;width:56px;height:56px;background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,0.35);transition:all 0.4s cubic-bezier(0.16,1,0.3,1);text-decoration:none;border:none;cursor:pointer;animation:waEntrance 0.6s 1.5s cubic-bezier(0.16,1,0.3,1) both}
@keyframes waEntrance{from{opacity:0;transform:scale(0.5) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
@media(hover:hover){.wa-float:hover{transform:scale(1.12) translateY(-2px);box-shadow:0 8px 32px rgba(37,211,102,0.5)}}
.wa-float svg{width:28px;height:28px;fill:#fff}

/* === SCROLL PROGRESS === */
#scroll-progress-bar{position:fixed;top:0;left:0;width:0%;height:3px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-bright) 60%,var(--accent) 100%);z-index:101;box-shadow:0 0 6px var(--accent),0 0 12px rgba(212,160,18,0.5),0 0 20px rgba(212,160,18,0.25);will-change:width;pointer-events:none;border-radius:0 2px 2px 0;transition:opacity 0.3s ease}

/* === BACK TO TOP === */
#back-to-top{position:fixed;bottom:6rem;right:1.8rem;z-index:89;width:48px;height:48px;border-radius:50%;border:1px solid var(--border);background:rgba(21,23,30,0.72);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(0,0,0,0.45);opacity:0;visibility:hidden;transform:translateY(8px) scale(0.92);transition:opacity 0.35s ease,visibility 0.35s ease,transform 0.35s ease,border-color 0.25s ease,box-shadow 0.25s ease;padding:0;outline:none}
#back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
@media(hover:hover){#back-to-top:hover{border-color:var(--accent);color:var(--accent-bright);transform:translateY(-2px) scale(1.08);box-shadow:0 6px 28px rgba(0,0,0,0.55),0 0 16px var(--accent-glow-strong)}}
#back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#back-to-top svg{display:block;flex-shrink:0}

/* === BRAND TICKER === */
.brand-ticker{position:relative;width:100%;background:var(--bg);padding:24px 0;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.brand-ticker::before,.brand-ticker::after{content:"";position:absolute;top:0;bottom:0;width:140px;z-index:2;pointer-events:none}
.brand-ticker::before{left:0;background:linear-gradient(to right,var(--bg) 0%,transparent 100%)}
.brand-ticker::after{right:0;background:linear-gradient(to left,var(--bg) 0%,transparent 100%)}
.ticker-track-wrapper{overflow:hidden;width:100%;white-space:nowrap}
.ticker-track{display:inline-flex;align-items:center;white-space:nowrap;will-change:transform}
.ticker-track.running{animation:ticker-scroll var(--ticker-duration,40s) linear infinite}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none!important}}
.ticker-item{display:inline-flex;align-items:center;gap:12px;padding:0 40px;color:var(--text-muted);cursor:pointer;transition:color 0.35s ease,opacity 0.35s ease,transform 0.35s cubic-bezier(0.16,1,0.3,1);flex-shrink:0;text-decoration:none;opacity:0.45}
@media(hover:hover){.ticker-item:hover{color:var(--accent);opacity:1;transform:scale(1.08)}}
.ticker-logo{height:32px;width:auto;flex-shrink:0;opacity:0.8;transition:opacity 0.35s,filter 0.35s}
@media(hover:hover){.ticker-item:hover .ticker-logo{opacity:1;filter:drop-shadow(0 0 8px rgba(212,160,18,0.4))}}
.ticker-brand{font-family:'Outfit',sans-serif;font-weight:700;font-size:0.95rem;letter-spacing:0.05em;text-transform:uppercase;color:inherit;line-height:1}
@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* === SPLASH SCREEN === */
.splash {
  position:fixed;inset:0;z-index:10000;
  background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.splash.done {
  opacity:0;visibility:hidden;
  transition:opacity 0.6s cubic-bezier(0.4,0,0.2,1),visibility 0.6s;
}
.splash::before {
  content:'';position:absolute;
  width:300px;height:300px;
  background:radial-gradient(circle,rgba(212,160,18,0.12) 0%,transparent 70%);
  pointer-events:none;opacity:0;
  animation:splashFadeIn 1s 0.8s ease forwards;
}
.splash-logo {
  width:80px;height:80px;margin-bottom:1.8rem;position:relative;z-index:1;
  filter:drop-shadow(0 0 30px rgba(212,160,18,0.15));
}
.splash-rect {
  fill:none;stroke:var(--accent);stroke-width:2.5;
  stroke-dasharray:350;stroke-dashoffset:350;
  animation:splashStroke 1s 0.3s cubic-bezier(0.4,0,0.2,1) forwards;
}
.splash-fill {
  fill:var(--accent);opacity:0;
  animation:splashFadeIn 0.4s 1s ease forwards;
}
.splash-letter {
  fill:var(--bg);opacity:0;
  animation:splashFadeIn 0.3s 1.15s ease forwards;
}
@keyframes splashStroke{to{stroke-dashoffset:0}}
@keyframes splashFadeIn{to{opacity:1}}
.splash-name {
  font-family:'Outfit',sans-serif;
  font-size:clamp(1.4rem,4vw,2rem);
  font-weight:800;letter-spacing:-0.02em;
  color:var(--text);position:relative;overflow:hidden;z-index:1;
}
.splash-name span {
  display:inline-block;opacity:0;
  transform:translateY(100%);
  animation:splashCharUp 0.4s cubic-bezier(0.16,1,0.3,1) forwards;
}
@keyframes splashCharUp{to{opacity:1;transform:translateY(0)}}
.splash-name::after {
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(240,192,48,0.3) 50%,transparent 100%);
  transform:translateX(-100%);pointer-events:none;
}
.splash-name.shimmer::after {
  animation:shimmerSlide 0.7s ease forwards;
}
@keyframes shimmerSlide{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.splash-sub {
  font-family:'DM Sans',sans-serif;
  font-size:0.72rem;text-transform:uppercase;
  letter-spacing:0.18em;color:var(--accent);
  font-weight:600;margin-top:0.5rem;z-index:1;
  opacity:0;animation:splashFadeIn 0.5s 2.1s ease forwards;
}

/* === TEXT REVEAL === */
.tr-word {
  display:inline-block;overflow:hidden;vertical-align:bottom;
  line-height:inherit;padding-bottom:0.08em;
}
.tr-inner {
  display:inline-block;
  transform:translateY(115%);opacity:0;
  transition:transform 0.6s cubic-bezier(0.16,1,0.3,1),opacity 0.5s ease;
  will-change:transform;
}
.tr-active {
  animation:none!important;
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}

/* === 3D TILT === */
.tilt-active {
  transition:transform 0.08s ease-out,border-color 0.25s,box-shadow 0.45s cubic-bezier(0.16,1,0.3,1)!important;
}

/* === LENIS SMOOTH SCROLL === */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* === RESPONSIVE === */
@media(max-width:1024px){
  .hero-truck{width:75%;right:-8%;opacity:0;animation:truckReveal 2.8s 0.5s ease-out forwards}
  .srv-grid{grid-template-columns:repeat(2,1fr)}
  .adv-grid{grid-template-columns:repeat(2,1fr)}
  .ct-bar{grid-template-columns:repeat(2,1fr)}
  .teaser-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  nav{padding:0.9rem 1.5rem}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:rgba(10,12,16,0.95);backdrop-filter:blur(16px);flex-direction:column;padding:1.5rem;gap:1.2rem;border-bottom:1px solid var(--border);max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .nav-links.open{display:flex}
  .mob-tog{display:flex}
  .hero-glow{width:400px;height:400px;top:-10%;right:-20%}
  .hero-float{display:none}
  .hero-stats{gap:1.5rem;flex-wrap:wrap}
  .reg-wrap{grid-template-columns:1fr}
  .kom-wrap{grid-template-columns:1fr}
  .kom-cta{position:static}
  .globe-wrap{order:-1}
  .globe-svg{max-width:320px}
  .f-row{grid-template-columns:1fr}
  .f-card{padding:1.8rem 1.4rem}
  .review-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hero-truck{display:none}
  .srv-grid{grid-template-columns:1fr}
  .adv-grid{grid-template-columns:1fr}
  .ct-bar{grid-template-columns:1fr}
  .reg-list{grid-template-columns:1fr}
  .f-submit{flex-direction:column}
  .f-submit .btn-primary{width:100%}
  .teaser-grid{grid-template-columns:1fr}
  .cursor-glow{display:none}
  #back-to-top{bottom:5rem}
  .wa-float{bottom:1.2rem;right:1.2rem;width:50px;height:50px}
  .wa-float svg{width:24px;height:24px}
}

/* === FOCUS STATES === */
a:focus-visible, .btn:focus-visible, .nav-cta:focus-visible, .ticker-item:focus-visible, .teaser-card:focus-visible, .faq-item summary:focus-visible, .wa-float:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
.nav-links a:focus-visible::after { width:100%; left:0; }

/* === SKIP NAVIGATION === */
.skip-link { position:absolute; top:-100%; left:1rem; background:var(--accent); color:var(--bg); padding:0.8rem 1.5rem; border-radius:0 0 8px 8px; font-weight:600; font-size:0.9rem; z-index:200; text-decoration:none; transition:top 0.3s; }
.skip-link:focus { top:0; }

/* === REDUCED MOTION === */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:0.01ms!important; animation-iteration-count:1!important; transition-duration:0.01ms!important; }
  .fu { opacity:1; transform:none; filter:none; }
  .page-transition-overlay { display:none; }
  .cursor-glow { display:none; }
  .splash { display:none; }
  .tr-inner { transform:none!important; opacity:1!important; }
  body { opacity:1; }
}
