
:root{--primary:#0B1220;--secondary:#6E56CF;--accent:#9E77ED;--text:#ECF1F8;--muted:#A6B0C2}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--primary);color:var(--text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;line-height:1.55}
.container{max-width:1120px;margin:0 auto;padding:0 2rem}

/* Utilities */
.flex{display:flex}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.gap-3{gap:.75rem}
.gap-6{gap:1.5rem}
.text-sm{font-size:.9rem}

/* NAV */
.nav{backdrop-filter:saturate(180%) blur(12px);background:rgba(0,0,0,.2);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:50}
.nav-inner{height:64px;display:flex;align-items:center;justify-content:space-between}
.logo{height:2rem;width:auto}
.nav-links{display:none;align-items:center;gap:1.25rem}
.cta{margin-left:1rem}
.hamburger{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.15);border-radius:.75rem;padding:.5rem .75rem;color:#cbd5e1;cursor:pointer}
.hamburger-icon{width:18px;height:2px;background:currentColor;position:relative;display:block}
.hamburger-icon::before,.hamburger-icon::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor}
.hamburger-icon::before{top:-6px}.hamburger-icon::after{top:6px}
.mobile-nav{display:none;position:fixed;top:64px;left:0;right:0;background:rgba(7,10,18,.98);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);padding:1rem 1.25rem}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;color:#cbd5e1;text-decoration:none;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.06)}
.nav a{color:#cbd5e1;text-decoration:none;font-size:.95rem}
.nav a:hover{color:#fff}
@media(min-width:860px){
  .nav-links{display:flex}
  .hamburger{display:none}
  .mobile-nav{display:none!important}
}

/* HERO / LAYOUT */
.hero-bg{background:
  radial-gradient(1500px 800px at 90% -10%, rgba(158,119,237,.13), transparent 60%),
  radial-gradient(1200px 700px at -10% 10%, rgba(110,86,207,.13), transparent 50%),
  var(--primary)}
h1,h2,h3,h4{margin:0 0 .5rem}
h1{font-size:clamp(2rem,4vw,3.5rem);font-weight:800;line-height:1.1}
h2{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700}
h3{font-size:1.375rem;font-weight:700}
p{margin:.5rem 0}
.muted{color:var(--muted)}
.btn{border-radius:.5rem;padding:1rem 1.75rem;display:inline-flex;align-items:center;gap:1rem;font-weight:600;text-decoration:none}
.btn-primary{border:1px; background:var(--secondary);color:#fff; }
.btn-ghost{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.03);color:#fff}
.grid{display:grid;gap:1.25rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.grid-2,.grid-3{grid-template-columns:1fr}}
.card{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);border-radius:.5rem;padding:1.25rem}
.footer{border-top:1px solid rgba(255,255,255,.1);color:#94a3b8}
.footer a{color:#94a3b8;text-decoration:none}
.footer a:hover{color:#fff}
.stat{text-align:center}
.stat .value{font-size:clamp(2rem,4vw,3rem);font-weight:800}
.stat .label{margin-top:.25rem;font-size:.9rem;color:var(--muted)}
.hero-img{position:relative;border-radius:1.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 60px rgba(0,0,0,.35)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(45deg, rgba(0,0,0,.4), rgba(0,0,0,.15), transparent)}
.section{padding:4rem 0}
.badge{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);padding:.25rem .6rem;border-radius:999px;color:#cbd5e1;font-size:.75rem}

/* PROSE */
.prose{max-width:none}
.prose p{color:#dbeafe}
.prose a{color:#c7d2fe;text-decoration:underline}
.prose ul{padding-left:1.25rem}
.prose ul li{list-style:disc;margin:.35rem 0}
.prose h2{margin-top:1.25rem}

/* COOKIE */
.hidden{display:none}
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:60}
.card-ghost{background:rgba(255,255,255,.8)}
.icon{height:2rem;width:auto}

/* FORM — first-draft look via .card inputs */
input.card, textarea.card{display:block;width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:1rem;padding:.9rem 1rem;color:var(--text)}
input.card::placeholder, textarea.card::placeholder{color:#b8c0d4}
textarea.card{min-height:9rem;resize:vertical}


/* Smooth scrolling for anchor links */
html{scroll-behavior:smooth}

/* Back-to-top button hover/focus states */
#backToTop:hover{background:rgba(255,255,255,.18)}
#backToTop:focus{outline:1px solid rgba(158,119,237,.6);outline-offset:1px}

.padded-content {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.text-center {
  text-align: center;
}


/* === Portrait 9:16 video block for 'Grafik Team' === */
.portrait-9-16{border:1px solid rgba(255,255,255,.1);background:#000;border-radius:.75rem;padding:0;overflow:hidden;display:grid;aspect-ratio:9/16;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.portrait-9-16::before{content:"";padding-block:calc(9/16*100%);grid-area:1/1;visibility:hidden}
.portrait-media{grid-area:1/1;width:100%;height:100%;object-fit:cover;display:block;background:#000}
@media (max-width:860px){.portrait-9-16{max-width:420px;margin-inline:auto}}


/* === Update: Video doppelt so breit darstellen === */
.portrait-9-16 {
  aspect-ratio: 9/16;
  max-width: 840px; /* vorher 420px */
}


/* === Layout Update: Video 2/3 width on desktop, stacked on mobile === */
@media (min-width: 1024px) {
  .gt-container {
    grid-template-columns: 2fr 1fr !important;
    align-items: center;
  }
  .gt-media { order: 1; }
  .gt-copy { order: 2; }
}
@media (max-width: 1023px) {
  .gt-container {
    grid-template-columns: 1fr !important;
  }
  .gt-media, .gt-copy {
    order: initial;
  }
}


/* === Video caption styling === */
.video-caption {
  font-size: .9rem;
  line-height: 1.4;
  color: var(--muted);
  padding: .75rem 1rem;
  background: rgba(255,255,255,.05);
}
.video-caption p {
  margin: 0;
}


/* === Fix: Cookie banner fully opaque === */
.cookie {
  background: rgba(7,10,18,1) !important;
  backdrop-filter: none !important;
}
.cookie .card-ghost {
  background: rgba(255,255,255,1) !important;
}

/* === Fix: Ensure video fits fully inside frame === */
.portrait-media {
  object-fit: contain !important;
  background-color: #000;
}

/* Cookie-Banner: Slide-In/Out Animation */
#cookie-banner {
  transform: translateY(100%);
  transition: transform 280ms ease;
  will-change: transform;
}
#cookie-banner.is-visible {
  transform: translateY(0);
}

/* Bewegungen respektieren */
@media (prefers-reduced-motion: reduce) {
  #cookie-banner { transition: none; transform: translateY(0); }
}


/* === Mobile Tweaks: Cookie-Banner besser sichtbar, keine Überstände === */
#cookie-banner { 
  left: 0; right: 0; bottom: 0;
  padding-left: clamp(8px, 3vw, 16px);
  padding-right: clamp(8px, 3vw, 16px);
  padding-bottom: max(8px, env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
}
#cookie-banner .container { 
  max-width: 1120px; 
  margin: 0 auto; 
  padding-bottom: 1rem !important; /* überschreibt Inline-Style */
}
#cookie-banner .card { 
  border-radius: .6rem; 
  padding: 0.85rem;
}

@media (max-width: 600px) {
  #cookie-banner .flex.gap-3 { gap: .5rem; flex-wrap: wrap; }
  #cookie-banner .btn { 
    padding: .55rem .85rem; 
    border-radius: .5rem; 
    line-height: 1.1;
  }
  #cookie-banner .btn-ghost { 
    border: 1px solid rgba(255,255,255,.22) !important;
  }
  #cookie-banner .btn-primary { /* bleibt kompakt */ }
  #cookie-banner .text-sm { font-size: .85rem; }
  #cookie-banner .text-xs { font-size: .78rem; }
}

@media (max-width: 400px) {
  #cookie-banner .container { padding-left: .5rem; padding-right: .5rem; }
}


/* Cookie-Banner: Robust Animation (visible by default, anim only with JS) */
#cookie-banner { 
  transform: none;           /* sichtbar ohne JS */
  will-change: transform;
}
#cookie-banner.anim { 
  transform: translateY(100%);
  transition: transform 280ms ease;
}
#cookie-banner.anim.is-visible {
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  #cookie-banner, #cookie-banner.anim, #cookie-banner.anim.is-visible {
    transition: none; transform: none;
  }
}


/* Selected Button Style */
.btn-selected {
  background-color: #007BFF !important;
  color: #fff !important;
}

/* Modal Styles */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  padding-top: 60px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.9);
}
.modal-content {
  margin: auto;
  display: block;
  max-width: 80%;
}
.modal-close {
  position: absolute;
  top: 15px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}
#cfg-awtb input[type="checkbox"] {
  width: auto;
  margin: 0;
  transform: translateY(1px); /* leichte optische Korrektur */
}
#cfg-awtb label.cfg-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: .5rem;
}

#cfg-awtb label.cfg-row span {
  display: inline;   /* statt block */
  line-height: 1.4;
}

#cfg-awtb label.cfg-row input[type="checkbox"] {
  margin: 0;
}
#cfg-awtb .cfg-row.consent {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: nowrap;   /* verhindert Umbruch */
  margin-top: .75rem;
}

#cfg-awtb .cfg-row.consent input[type="checkbox"] {
  flex: 0 0 auto;
}

#cfg-awtb .cfg-row.consent span {
  flex: 1;
  display: inline-block;
  line-height: 1.4;
}