/* EN-885 — Schlanke 4You-Landingpage (Frachtbuchung.de)
   Farben/Typo nach DACHSER Online & Digital Styleguide (v01/231020):
   Brand Blue #1A3682, Yellow #FBBA00, Blue/800 #122559,
   Text GS/900 #22262B, GS/700 #696D73; Font Roboto, Fallback Arial. */

/* Roboto = DACHSER Digital-Font (Styleguide 2.2.1), self-hosted (DSGVO) */
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/roboto-400.woff2') format('woff2');
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/roboto-500.woff2') format('woff2');
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/roboto-700.woff2') format('woff2');
}

:root {
  --dachser-blue: #1a3682;
  --dachser-dark: #122559;
  --dachser-yellow: #fbba00;
  --text-muted: #696d73;
  --header-height: 72px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;
  color: #22262b;
  background-color: #fff;
  /* Hintergrundbild über die volle Höhe (Marketing-Wunsch 2026-07):
     Bild auf dem Body, dezenter Dunkel-Verlauf oben hält Logo/Claim/Intro lesbar. */
  background-image:
    linear-gradient(
      rgb(18 37 89 / 72%) 0,
      rgb(18 37 89 / 30%) 200px,
      rgb(18 37 89 / 0%) 460px
    ),
    url('../images/mesh-background.jpg');
  background-repeat: no-repeat;
  background-position:
    center top,
    center 38%;
  background-size: auto, cover;
  background-attachment: scroll, fixed;
}

/* Header */

.header {
  position: relative;
  z-index: 10;
  background: transparent;
  overflow: visible;
}

.header__inner {
  max-width: none;
  margin: 0;
  padding: 0 32px;
  height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.header__logo {
  display: block;
  height: 72px;
  width: auto;
  align-self: flex-start;
  position: relative;
  z-index: 1;
}

.header__claim {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #fff;
  text-transform: none;
  align-self: flex-end;
  padding-bottom: 14px;
}

/* Hero — Hintergrundbild liegt jetzt auf dem Body (volle Höhe), Hero selbst transparent */

.hero {
  flex: 1;
  position: relative;
  padding: 32px 24px 96px;
}

.hero__inner {
  max-width: 1080px;
  margin: 0 auto;
}

.hero__intro {
  text-align: center;
  max-width: 900px;
  margin: 0 auto 24px;
}

.hero__intro h1 {
  margin: 0 0 12px;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.2;
  color: #fff;
  text-shadow: 0 2px 18px rgb(6 18 48 / 55%);
}

.hero__intro p {
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.6;
  color: #fff;
  text-shadow: 0 1px 10px rgb(6 18 48 / 50%);
}

/* Plugin-Karte — Mittelpunkt der Seite.
   Weiß, damit das Plugin im Default-Theme läuft (Lesbarkeit, Paddings,
   sticky Warenkorb out-of-the-box). Branding kommt über die Theme-Felder
   der Agency-Config (button-bg-color etc.), NICHT über custom-css —
   das EN-751-custom-css (weiß-auf-dunkel) muss im Dashboard entfernt sein. */

.hero__plugin {
  max-width: 860px;
  margin: 0 auto 40px;
}

/* Footer — nur Legal-Links aus dem Mirror übernommen */

.footer {
  background: var(--dachser-dark);
  color: #fff;
}

.footer__inner {
  max-width: none;
  margin: 0;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.footer__copy {
  font-size: 0.85rem;
  color: rgb(255 255 255 / 70%);
}

.footer__nav {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.footer__nav a {
  color: #fff;
  font-size: 0.9rem;
  text-decoration: none;
}

.footer__nav a:hover,
.footer__nav a:focus-visible {
  color: var(--dachser-yellow);
  text-decoration: underline;
}

/* Desktop: Beschreibungstext einzeilig (Marketing-Wunsch; Mobile bricht bewusst um) */

@media (width >= 1000px) {
  .hero__intro {
    max-width: none;
  }

  .hero__intro p {
    white-space: nowrap;
  }
}

/* Mobile */

@media (width <= 640px) {
  .header__claim {
    display: none;
  }

  body {
    background-attachment: scroll, scroll;
  }

  .hero {
    padding: 32px 12px 48px;
  }

  .footer__inner {
    justify-content: center;
    text-align: center;
  }
}
