/* ═══════════════════════════════════════════════════
   ALFA ISOLATIONEN — Custom CSS (Tailwind supplement)
   Only contains what Tailwind utilities cannot do:
   scroll behaviour, hero pattern, showcase slider
   animations, scroll-to-top & form feedback.
═══════════════════════════════════════════════════ */

html { scroll-padding-top: 76px; }
html, body { overflow-x: hidden; max-width: 100%; }

/* ── Hero truck background slow zoom ───────── */
.hero-truck-img {
  animation: heroZoom 18s ease-out forwards;
  transform-origin: center center;
}
@keyframes heroZoom {
  from { transform: scale(-1.06, 1.06); }
  to   { transform: scale(-1.00, 1.00); }
}

/* ── Hero diagonal stripe pattern ──────────── */
.hero-pattern {
  position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(
    -55deg,
    transparent, transparent 60px,
    rgba(245,146,0,.04) 60px, rgba(245,146,0,.04) 62px
  );
}

/* ── Navbar scrolled state ───────────────────── */
/* Mobile: subtle tint so content stays readable */
#mainNav.scrolled {
  background: rgba(13, 34, 68, 0.55) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 4px 20px rgba(13,34,68,.2);
  padding-top:    .65rem !important;
  padding-bottom: .65rem !important;
}
/* Desktop: full glassmorphism */
@media (min-width: 1024px) {
  #mainNav.scrolled {
    background: rgba(13, 34, 68, 0.88) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 4px 30px rgba(13,34,68,.35);
  }
}
#mainNav.scrolled #navLogo { height: 38px !important; }

/* ── Hero scroll indicator animation ────────── */
.scroll-line {
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100% { opacity: .4; transform: scaleY(1); }
  50%      { opacity: .15; transform: scaleY(.6); }
}

/* ── Stats strip blur ────────────────────────── */
.stats-strip {
  background: rgba(255,255,255,0.05);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* ── PROJEKTE SHOWCASE ─────────────────────── */
.projekte-showcase {
  position: relative;
  height: 680px;
  overflow: hidden;
  background: #0D2244;
}
.ps-track { position: relative; width: 100%; height: 100%; }

.ps-slide {
  position: absolute; inset: 0;
  display: flex;
  opacity: 0; visibility: hidden;
  transition: opacity .75s ease, visibility .75s;
  z-index: 0;
}
.ps-slide.active { opacity: 1; visibility: visible; z-index: 1; }

.ps-photo {
  position: relative; width: 58%; height: 100%;
  overflow: hidden; flex-shrink: 0;
}
.ps-photo img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  transform: scale(1.08);
  transition: transform 6s ease;
}
.ps-slide.active .ps-photo img { transform: scale(1); }
.ps-photo-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(13,34,68,.15) 0%, rgba(13,34,68,.55) 100%);
}

.ps-panel {
  flex: 1; background: #0D2244;
  display: flex; align-items: center;
  padding: 3rem 3.5rem;
  position: relative; overflow: hidden;
}
.ps-panel::before {
  content: ''; position: absolute;
  top: 0; bottom: 0; left: -32px; width: 64px;
  background: #0D2244; transform: skewX(-3deg); z-index: 2;
}
.ps-panel::after {
  content: ''; position: absolute;
  bottom: 3rem; right: 2rem;
  width: 120px; height: 120px;
  border-radius: 50%; border: 28px solid rgba(245,146,0,.08);
}
.ps-panel-inner { position: relative; z-index: 3; }

/* Staggered text reveal */
.ps-badge {
  display: inline-block;
  font-size: .7rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: #F59200;
  background: rgba(245,146,0,.12);
  border: 1px solid rgba(245,146,0,.25);
  border-radius: 20px; padding: .25rem .85rem;
  margin-bottom: 1.1rem;
  opacity: 0; transform: translateY(14px);
  transition: opacity .5s .2s, transform .5s .2s;
}
.ps-slide.active .ps-badge { opacity: 1; transform: translateY(0); }

.ps-title {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(2rem, 3.5vw, 2.75rem); font-weight: 700;
  color: #fff; line-height: 1.1; margin-bottom: 1.1rem;
  opacity: 0; transform: translateY(18px);
  transition: opacity .55s .35s, transform .55s .35s;
}
.ps-slide.active .ps-title { opacity: 1; transform: translateY(0); }

.ps-text {
  font-size: .97rem; color: rgba(255,255,255,.6);
  line-height: 1.7; margin-bottom: 1.5rem; max-width: 340px;
  opacity: 0; transform: translateY(18px);
  transition: opacity .55s .5s, transform .55s .5s;
}
.ps-slide.active .ps-text { opacity: 1; transform: translateY(0); }

.ps-tags {
  display: flex; flex-wrap: wrap; gap: .5rem;
  opacity: 0; transform: translateY(14px);
  transition: opacity .5s .65s, transform .5s .65s;
}
.ps-slide.active .ps-tags { opacity: 1; transform: translateY(0); }
.ps-tags span {
  font-size: .75rem; font-weight: 600;
  padding: .25rem .75rem; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.55); letter-spacing: .03em;
}

/* Controls */
.ps-controls {
  position: absolute; bottom: 2.75rem; left: 0; width: 58%;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 2rem; z-index: 10;
}
.ps-counter {
  font-family: 'Oswald', sans-serif; font-size: 1rem;
  color: rgba(255,255,255,.9);
  display: flex; align-items: baseline; gap: .3rem;
}
.ps-cur  { font-size: 1.6rem; font-weight: 700; color: #fff; }
.ps-sep  { color: rgba(255,255,255,.3); }
.ps-tot  { color: rgba(255,255,255,.4); }

.ps-dots { display: flex; gap: .5rem; }
.ps-dot {
  width: 28px; height: 3px; border-radius: 2px;
  border: none; background: rgba(255,255,255,.25);
  cursor: pointer; padding: 0;
  transition: background .3s, width .3s;
}
.ps-dot.active { width: 48px; background: #F59200; }

.ps-arrows { display: flex; gap: .5rem; }
.ps-arrow {
  width: 42px; height: 42px; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.08);
  color: #fff; font-size: .85rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s, transform .15s;
  backdrop-filter: blur(4px);
}
.ps-arrow:hover {
  background: #F59200; border-color: #F59200; color: #0D2244;
  transform: scale(1.08);
}

/* Progress bar */
.ps-progress {
  position: absolute; bottom: 0; left: 0; width: 58%;
  height: 3px; background: rgba(255,255,255,.1); z-index: 10;
}
.ps-progress-bar { height: 100%; background: #F59200; width: 0%; }

/* Responsive showcase */
@media (max-width: 991px) {
  .projekte-showcase { height: auto; }
  .ps-slide { position: relative; flex-direction: column; opacity: 1 !important; visibility: visible !important; display: none; }
  .ps-slide.active { display: flex; }
  .ps-photo { width: 100%; height: 300px; }
  .ps-panel { padding: 2rem 1.75rem; }
  .ps-panel::before { display: none; }
  .ps-controls { width: 100%; position: relative; bottom: auto; padding: 1rem 1.75rem 1.5rem; background: #0D2244; }
  .ps-progress { width: 100%; position: relative; }
}
@media (max-width: 575px) {
  .ps-photo { height: 230px; }
  .ps-text { max-width: 100%; }
}

/* ── Scroll-to-top ──────────────────────────── */
#scrollTop {
  position: fixed; bottom: 2rem; right: 2rem;
  width: 44px; height: 44px; border-radius: 50%;
  background: #F59200; color: #0D2244;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  box-shadow: 0 4px 16px rgba(245,146,0,.4);
  opacity: 0; transform: translateY(10px);
  transition: opacity .3s, transform .3s, background .2s;
  z-index: 999;
}
#scrollTop.visible { opacity: 1; transform: translateY(0); }
#scrollTop:hover { background: #d97e00; }

/* ── Form Feedback ──────────────────────────── */
.form-feedback {
  display: flex; align-items: flex-start; gap: .65rem;
  padding: .9rem 1.1rem; border-radius: 10px;
  font-size: .95rem; line-height: 1.5;
}
.form-feedback i { margin-top: .1rem; flex-shrink: 0; }
.form-feedback--ok  { background: rgba(39,174,96,.1); border: 1px solid rgba(39,174,96,.3); color: #1d7a45; }
.form-feedback--err { background: rgba(231,76,60,.08); border: 1px solid rgba(231,76,60,.25); color: #c0392b; }
.form-feedback--err a { color: inherit; font-weight: 600; }
