/* ============ TerraTransfer FX: Anwendungs-Marquee + Hover-Micro-Effekte ============ */
.fx-marquee { overflow:hidden; padding:1.05rem 0; background:var(--brand-50,#F2F5F8);
  border-top:1px solid var(--brand-100,#EAF1F8); border-bottom:1px solid var(--brand-100,#EAF1F8); }
[data-theme="dark"] .fx-marquee { background:rgba(255,255,255,.03); border-color:rgba(255,255,255,.08); }
.fx-marquee-track { display:flex; width:max-content; gap:.7rem; animation:fx-marquee 46s linear infinite; }
.fx-marquee:hover .fx-marquee-track { animation-play-state:paused; }
.fx-chip { flex:0 0 auto; padding:.5rem 1.05rem; border-radius:999px; background:var(--white,#fff);
  color:var(--brand-700,#1B3A5C); border:1px solid var(--brand-200,#D5E4F2);
  font-size:.92rem; font-weight:600; white-space:nowrap; }
[data-theme="dark"] .fx-chip { background:rgba(255,255,255,.06); color:var(--ink-900,#EAF1F8); border-color:rgba(255,255,255,.12); }
@keyframes fx-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* Hover: Karten heben sich leicht */
.product, .solution, .usp-item, .ref-card, .anw-card, .news-card {
  transition: transform .25s ease, box-shadow .25s ease; }
.product:hover, .solution:hover, .usp-item:hover, .ref-card:hover, .anw-card:hover, .news-card:hover {
  transform: translateY(-4px); box-shadow: 0 16px 38px rgba(14,31,54,.13); }

@media (prefers-reduced-motion: reduce) {
  .fx-marquee-track { animation:none; flex-wrap:wrap; justify-content:center; width:auto; }
  .product, .solution, .usp-item, .ref-card, .anw-card, .news-card { transition:none; }
  .product:hover, .solution:hover, .usp-item:hover, .ref-card:hover, .anw-card:hover, .news-card:hover { transform:none; box-shadow:none; }
}

/* ============ Unterseiten-FX (Sektions-Nav, Fortschritt, Stagger, Galerie) ============ */
html { scroll-behavior: smooth; }
.fx-progress { position:fixed; top:0; left:0; height:3px; width:0; z-index:1000;
  background:linear-gradient(90deg, var(--brand-500,#3B7BBD), var(--cyan,#19A4C8)); transition:width .1s linear; }
.fx-secnav { position:sticky; top:var(--fx-header,64px); z-index:50; background:var(--white,#fff);
  border-bottom:1px solid var(--brand-100,#EAF1F8); }
[data-theme="dark"] .fx-secnav { background:var(--ink-50,#141A28); border-color:rgba(255,255,255,.08); }
.fx-secnav-row { display:flex; gap:.4rem; overflow-x:auto; padding:.55rem 0; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.fx-secnav-row::-webkit-scrollbar { display:none; }
.fx-secnav a { flex:0 0 auto; padding:.4rem .85rem; border-radius:999px; font-size:.88rem; font-weight:600;
  text-decoration:none; color:var(--ink-700,#444441); white-space:nowrap; transition:background .2s,color .2s; }
.fx-secnav a:hover { color:var(--brand-600,#25548A); }
.fx-secnav a.active { background:var(--brand-600,#25548A); color:#fff; }
section[id] { scroll-margin-top: var(--fx-stick, 130px); }

/* Reveal-Stagger der Feature-Listen */
.product.reveal.visible .feature-list > li { animation: fx-fadeup .5s ease both; }
.product.reveal.visible .feature-list > li:nth-child(2){ animation-delay:.07s; }
.product.reveal.visible .feature-list > li:nth-child(3){ animation-delay:.14s; }
.product.reveal.visible .feature-list > li:nth-child(4){ animation-delay:.21s; }
.product.reveal.visible .feature-list > li:nth-child(5){ animation-delay:.28s; }
.product.reveal.visible .feature-list > li:nth-child(6){ animation-delay:.35s; }
@keyframes fx-fadeup { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }

/* Bojen-Galerie als Swipe-Karussell */
.boje-gallery.fx-carousel { display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; padding-bottom:.6rem; }
.boje-gallery.fx-carousel figure { flex:0 0 auto; width:min(82%,340px); scroll-snap-align:center; margin:0; }
.boje-gallery.fx-carousel img { width:100%; height:230px; object-fit:cover; border-radius:12px; cursor:zoom-in; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .product.reveal.visible .feature-list > li { animation:none; }
}

/* ============ Prozess-Timeline (Montage/Service) + Sektions-Nav-CTA ============ */
.fx-secnav a.fx-secnav-cta { margin-left:auto; background:var(--brand-600,#25548A); color:#fff; }
.fx-secnav a.fx-secnav-cta:hover { background:var(--brand-700,#1B3A5C); color:#fff; }
.fx-timeline { list-style:none; margin:1.5rem 0 0; padding:0; position:relative; max-width:840px; }
.fx-timeline::before { content:""; position:absolute; left:23px; top:10px; bottom:10px; width:2px; background:var(--brand-200,#D5E4F2); }
[data-theme="dark"] .fx-timeline::before { background:rgba(255,255,255,.12); }
.fx-step { position:relative; padding:0 0 1.7rem 66px; }
.fx-step:last-child { padding-bottom:0; }
.fx-step-num { position:absolute; left:0; top:0; width:48px; height:48px; border-radius:50%;
  background:var(--brand-600,#25548A); color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:1.1rem; box-shadow:0 6px 18px rgba(37,84,138,.3); }
.fx-step h3 { margin:.15rem 0 .35rem; }
.fx-step p { margin:0; color:var(--ink-700,#444441); }
.fx-timeline.reveal.visible .fx-step { animation:fx-fadeup .5s ease both; }
.fx-timeline.reveal.visible .fx-step:nth-child(2){ animation-delay:.1s; }
.fx-timeline.reveal.visible .fx-step:nth-child(3){ animation-delay:.2s; }
.fx-timeline.reveal.visible .fx-step:nth-child(4){ animation-delay:.3s; }
.fx-timeline.reveal.visible .fx-step:nth-child(5){ animation-delay:.4s; }
@media (prefers-reduced-motion: reduce){ .fx-timeline.reveal.visible .fx-step { animation:none; } }

/* ============ Branchen: Sticky-Kategorie-Filter ============ */
.anw-filter { position:sticky; top:var(--fx-header,64px); z-index:40; background:var(--white,#fff);
  border-bottom:1px solid var(--brand-100,#EAF1F8); padding:.6rem 0; margin-bottom:1.6rem; }
[data-theme="dark"] .anw-filter { background:var(--ink-50,#141A28); border-color:rgba(255,255,255,.08); }
.anw-filter-row { display:flex; gap:.4rem; overflow-x:auto; scrollbar-width:none; }
.anw-filter-row::-webkit-scrollbar { display:none; }
.anw-filter button { flex:0 0 auto; font:inherit; cursor:pointer; padding:.45rem 1.05rem; border-radius:999px;
  border:1px solid var(--brand-200,#D5E4F2); background:transparent; color:var(--ink-700,#444441);
  font-weight:600; font-size:.9rem; white-space:nowrap; transition:background .2s,color .2s,border-color .2s; }
.anw-filter button:hover { border-color:var(--brand-400,#6BA4DB); }
.anw-filter button.active { background:var(--brand-600,#25548A); color:#fff; border-color:var(--brand-600,#25548A); }
.anw-card.is-hidden { display:none; }
.anw-card.is-shown { animation:fx-fadeup .45s ease both; }
@media (prefers-reduced-motion: reduce){ .anw-card.is-shown { animation:none; } }

/* ============ Referenz-Globus ============ */
.ref-globe { position:relative; width:100%; max-width:540px; margin:1.6rem auto 0; aspect-ratio:1/1; }
.ref-globe canvas { display:block; }
.ref-globe .hero-globe-fallback { position:absolute; top:50%; left:50%; width:60%; padding-bottom:60%; height:0;
  transform:translate(-50%,-50%); border-radius:50%;
  background:radial-gradient(circle at 36% 32%, #2a5a8f 0%, #14304E 60%, #0a1c30 100%);
  box-shadow:inset -18px -22px 50px rgba(5,14,28,.55), 0 18px 50px rgba(20,48,78,.4); opacity:1; transition:opacity .6s ease; }
.ref-globe.is-ready .hero-globe-fallback { opacity:0; }


/* ============ Dark-Mode-Kontrast: Galerie-Filter-Pills ============ */
[data-theme="dark"] .gallery-filter button { background:rgba(255,255,255,.06); color:var(--ink-900,#ECEFF4); border-color:rgba(255,255,255,.18); }
[data-theme="dark"] .gallery-filter button:hover { color:#fff; border-color:var(--brand-400,#6BA4DB); }
[data-theme="dark"] .gallery-filter button.active { background:var(--brand-600,#25548A); color:#fff; border-color:var(--brand-600,#25548A); }

/* ============ Über-uns: Jahres-Timeline + Sektions-Anker ============ */
.fx-timeline--years::before { left:34px; }
.fx-timeline--years .fx-step { padding-left:92px; }
.fx-step-year { position:absolute; left:0; top:0; min-width:68px; height:34px; padding:0 .65rem; border-radius:999px;
  background:var(--brand-600,#25548A); color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.95rem; box-shadow:0 5px 14px rgba(37,84,138,.3); }
.fx-timeline--years.reveal.visible .fx-step:nth-child(n+6) { animation-delay:.45s; }
.fx-anchor { scroll-margin-top: var(--fx-stick, 130px); }

/* ============ Über-uns: Scroll-Spotlight-Timeline ============ */
.fx-timeline--years { position:relative; }
.fx-timeline--years .fx-step { opacity:.45; transition:opacity .35s ease; }
.fx-timeline--years .fx-step.active { opacity:1; }
.fx-timeline--years .fx-step-year { transition:transform .3s ease, box-shadow .3s ease; }
.fx-timeline--years .fx-step.active .fx-step-year { transform:scale(1.18); box-shadow:0 0 0 6px rgba(25,164,200,.20), 0 8px 20px rgba(37,84,138,.45); }
.fx-timeline--years .fx-step-head { display:flex; align-items:center; gap:.6rem; cursor:pointer; }
.fx-timeline--years .fx-step-head h3 { margin:.1rem 0; transition:color .2s ease; }
.fx-timeline--years .fx-step.active .fx-step-head h3 { color:var(--brand-600,#25548A); }
[data-theme="dark"] .fx-timeline--years .fx-step.active .fx-step-head h3 { color:var(--ink-900,#ECEFF4); }
.fx-timeline--years .fx-step-body { max-height:0; overflow:hidden; opacity:0; transition:max-height .45s ease, opacity .4s ease; }
.fx-timeline--years .fx-step.active .fx-step-body { max-height:600px; opacity:1; }
.fx-timeline--years .fx-step-body p { margin:.45rem 0 0; }
.fx-tl-fill { position:absolute; left:34px; top:10px; width:2px; height:0; background:linear-gradient(var(--brand-400,#6BA4DB), var(--cyan,#19A4C8)); box-shadow:0 0 10px rgba(25,164,200,.6); transition:height .25s ease; pointer-events:none; }
.fx-tl-dot { position:absolute; left:30px; top:10px; width:10px; height:10px; border-radius:50%; background:var(--cyan,#19A4C8); box-shadow:0 0 0 5px rgba(25,164,200,.28); transition:top .25s ease; pointer-events:none; }
@media (prefers-reduced-motion: reduce){ .fx-timeline--years .fx-step{opacity:1;} .fx-timeline--years .fx-step-body{max-height:none;opacity:1;} .fx-tl-dot,.fx-tl-fill{display:none;} }
