/* ========================================================================
   Startseite V2 — Full-Bleed-Hero und ruhige Inhaltsführung
   Wird NACH styles.css geladen und gilt ausschließlich unter
   <body class="homepage-v2">. Jede Regel in dieser Datei MUSS mit
   .homepage-v2 beginnen; tests/homepage-redesign.test.js erzwingt das,
   damit Unterseiten von Startseiten-Entscheidungen unberührt bleiben.

   Leitidee: eine einzige Leseachse. Alle Container der Startseite laufen
   auf derselben Breite, sodass Hero-Headline, Section-Überschriften,
   Bilder, Listen und der Footer dieselbe linke Kante teilen. Überschriften
   und Fließtext bekommen darin eine eigene, kürzere Zeilenbreite —
   sie rücken aber nie in die Mitte, weil eine zweite optische Achse
   die Seite genau so unruhig macht wie die früheren Kartenwände.
   ======================================================================== */

.homepage-v2 {
    /* Inhaltsbreite 1080px + 2 × 24px Containerpolsterung */
    --rail: 1128px;
    --measure-heading: 900px;
    --measure-text: 620px;
}

.homepage-v2 .container { max-width: var(--rail); }

/* ── 1. Hero ──────────────────────────────────────────────────────────── */

.homepage-v2 .hero {
    position: relative;
    display: grid;
    min-height: clamp(640px, 76svh, 820px);
    padding: 0;
    overflow: hidden;
    isolation: isolate;
    background: #0d1a15;
    color: #fff;
}

/* Zwei Schichten statt einer harten Farbwand: eine weich abgestufte
   Richtungsblende hält die Textspalte kontrastreich, eine flache
   Bodenblende fängt Vertrauenszeile und Bildunterkante ab. Die Stops sind
   bewusst eng gesetzt — eine Blende aus vier Stufen bricht auf großen
   Flächen sichtbar in Streifen. Der Werkstattraum bleibt dabei links
   erkennbar; er ist die eigentliche Aussage des Bildes. */
.homepage-v2 .hero::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(180deg, rgba(8, 26, 21, .32) 0%, rgba(8, 26, 21, 0) 24%, rgba(8, 26, 21, 0) 60%, rgba(8, 26, 21, .40) 100%),
        linear-gradient(96deg,
            rgba(7, 30, 24, .88) 0%,
            rgba(7, 30, 24, .85) 20%,
            rgba(7, 30, 24, .78) 34%,
            rgba(7, 30, 24, .64) 46%,
            rgba(7, 30, 24, .46) 57%,
            rgba(7, 30, 24, .30) 69%,
            rgba(7, 30, 24, .18) 82%,
            rgba(7, 30, 24, .24) 100%);
}

.homepage-v2 .hero__background,
.homepage-v2 .hero__background img {
    position: absolute;
    inset: 0;
    z-index: -2;
    display: block;
    width: 100%;
    height: 100%;
}

.homepage-v2 .hero__background img {
    object-fit: cover;
    object-position: 66% center;
}

.homepage-v2 .hero__content {
    align-self: center;
    width: 100%;
    padding-block: clamp(72px, 10vw, 120px);
}

.homepage-v2 .hero__content > * { max-width: 680px; }

.homepage-v2 .hero .eyebrow {
    margin-block: 0 20px;
    color: #a9e0c6;
    letter-spacing: .16em;
}

.homepage-v2 .hero h1 {
    margin: 0 0 26px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(48px, 5vw, 68px);
    font-weight: 700;
    line-height: 1.06;
    letter-spacing: -.03em;
}

.homepage-v2 .hero h1 span { color: rgba(214, 240, 228, .82); }

.homepage-v2 .hero__lead {
    margin: 0 0 32px;
    max-width: 610px;
    color: rgba(255, 255, 255, .87);
    font-size: clamp(18px, 1.5vw, 21px);
    line-height: 1.58;
}

.homepage-v2 .hero__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px 28px;
}

.homepage-v2 .hero .btn-white {
    padding: 17px 34px;
    border-radius: 10px;
    color: #06382a;
    font-size: 17px;
    font-weight: 700;
}

.homepage-v2 .hero__secondary {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, .4);
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}

.homepage-v2 .hero__secondary:hover { text-decoration-color: #fff; }

.homepage-v2 .hero__note,
.homepage-v2 .hero__trust {
    color: rgba(255, 255, 255, .72);
    font-size: 14px;
    line-height: 1.5;
}

.homepage-v2 .hero__note { margin: 28px 0 0; }
.homepage-v2 .hero__trust { margin: 10px 0 0; }

/* ── 2. Sectionrhythmus, Leseachse und Zeilenbreite ──────────────────── */

.homepage-v2 .problem,
.homepage-v2 .process,
.homepage-v2 .offer,
.homepage-v2 .faq {
    padding-block: clamp(80px, 9vw, 128px);
}

.homepage-v2 .problem > .container > h2,
.homepage-v2 .faq > .container > h2,
.homepage-v2 .section-head h2,
.homepage-v2 .komp__headline {
    max-width: var(--measure-heading);
    margin: 0 0 clamp(48px, 6vw, 80px);
    font-family: var(--font-heading);
    font-size: clamp(36px, 4vw, 52px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.03em;
    text-align: left;
    /* "Kundenkommunikation" ist bei 390px breiter als die Spalte. lang="de"
       steht am <html>, die Silbentrennung greift also. */
    overflow-wrap: break-word;
    hyphens: auto;
}

.homepage-v2 .section-head {
    max-width: none;
    margin: 0;
    text-align: left;
}

.homepage-v2 .section-head h2 { margin-bottom: 18px; }

.homepage-v2 .section-head .section-subtitle {
    max-width: var(--measure-text);
    margin: 0 0 clamp(48px, 6vw, 72px);
    font-size: 18px;
    line-height: 1.6;
}

/* Gemeinsame Behandlung aller Textlinks außerhalb von Buttons: die
   frühere border-bottom saß am Boden der 44px-Trefferfläche und schwebte
   dadurch sichtbar unter der Schrift. */
.homepage-v2 .problem-story__cta a,
.homepage-v2 .gewerke-links__list a,
.homepage-v2 .faq-more > summary {
    border-bottom: 0;
    color: var(--text-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--border-light);
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}

.homepage-v2 .problem-story__cta a:hover,
.homepage-v2 .gewerke-links__list a:hover,
.homepage-v2 .faq-more > summary:hover {
    color: var(--primary-color);
    text-decoration-color: var(--primary-color);
}

/* ── 3. Problemfolge — begrenzte Bilder, ruhige Paare ─────────────────── */

/* Triptychon statt Wechsellayout: die drei Motive zeigen denselben Mann am
   selben Schreibtisch. Untereinander lasen sie sich als ein dreimal
   wiederholtes Bild; nebeneinander wird die Ähnlichkeit zur Aussage — ein
   Tag im Büro, vom Tagesgeschäft bis 20:47. Nur so sieht man zwei Motive
   überhaupt gleichzeitig. */
.homepage-v2 .problem-story {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    /* Drei geteilte Zeilen: Bild, Überschrift, Text. Die Spalten hängen per
       subgrid daran, damit die Absätze auf einer Linie beginnen, obwohl die
       Überschriften ein- oder zweizeilig sind. Ohne subgrid-Unterstützung
       fällt jede Spalte auf eigene Zeilenhöhen zurück — dann steht der
       Aufbau wie vorher, nur ohne die gemeinsame Grundlinie. */
    grid-template-rows: auto auto auto;
    column-gap: clamp(28px, 3vw, 44px);
    row-gap: 0;
    max-width: none;
    margin: 0;
}

.homepage-v2 .problem-story__item {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 0;
}

.homepage-v2 .problem-story__media {
    width: 100%;
    max-width: 480px;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: var(--surface-muted);
}

.homepage-v2 .problem-story__media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.homepage-v2 .problem-story__copy {
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
    align-content: start;
    max-width: none;
}

.homepage-v2 .problem-story__copy h3 {
    margin: 26px 0 14px;
    font-family: var(--font-heading);
    font-size: clamp(21px, 1.9vw, 26px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.02em;
    overflow-wrap: break-word;
    hyphens: auto;
}

.homepage-v2 .problem-story__copy p {
    margin: 0;
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.68;
}

.homepage-v2 .problem-story__cta {
    margin: clamp(64px, 7vw, 88px) 0 0;
    text-align: left;
}

.homepage-v2 .problem-story__cta a {
    min-height: 44px;
    display: inline-block;
    padding-block: 11px;
    font-size: 18px;
}

/* ── 4. Gewerke und Ablauf — Text statt Karten ───────────────────────── */

.homepage-v2 .gewerke-links {
    max-width: none;
    margin: clamp(88px, 10vw, 136px) 0 0;
    padding-top: 40px;
    border-top: 1px solid var(--border-subtle);
    text-align: left;
}

.homepage-v2 .gewerke-links h2 {
    max-width: var(--measure-heading);
    margin: 0 0 24px;
    font-size: clamp(26px, 2.6vw, 34px);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -.02em;
    text-align: left;
}

.homepage-v2 .gewerke-links__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 4px 36px;
}

.homepage-v2 .gewerke-links__list a {
    min-height: 44px;
    display: inline-block;
    padding-block: 11px;
    font-size: 17px;
}

.homepage-v2 .process { background: var(--surface-muted); }

.homepage-v2 .process-line {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(40px, 6vw, 80px);
    max-width: none;
    margin: 0;
    padding: 0;
    list-style: none;
}

.homepage-v2 .process-line__step {
    padding: 26px 0 0;
    border-top: 1px solid var(--border-subtle);
}

.homepage-v2 .process-line__step + .process-line__step { padding-left: 0; }
.homepage-v2 .process-line__step + .process-line__step::before { display: none; }

.homepage-v2 .process-line__index {
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    border: 0;
    border-radius: 0;
    color: var(--primary-color);
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .16em;
}

.homepage-v2 .process-line__step h3 {
    margin: 18px 0 12px;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.homepage-v2 .process-line__step p {
    margin: 0;
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.62;
}

.homepage-v2 .process-line__time { margin-top: 20px; }

/* ── 5. System und Preis — ohne Außenkarte ───────────────────────────── */

.homepage-v2 .komp {
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}

.homepage-v2 .komp__header {
    margin: 0 0 clamp(48px, 6vw, 72px);
    text-align: left;
}

.homepage-v2 .komp__headline { margin-bottom: 0; }

.homepage-v2 .system-overview {
    display: grid;
    grid-template-columns: 520px minmax(0, 1fr);
    align-items: center;
    gap: clamp(56px, 8vw, 112px);
    margin-bottom: 0;
}

.homepage-v2 .system-overview__device {
    width: 100%;
    max-width: 520px;
    margin: 0;
}

.homepage-v2 .system-overview__device img {
    display: block;
    width: 100%;
    border: 0;
    border-radius: var(--radius-sm);
}

.homepage-v2 .system-overview__investment {
    padding-left: 40px;
    border-left: 1px solid var(--border-subtle);
}

.homepage-v2 .system-overview__agents,
.homepage-v2 .system-overview__benefits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: clamp(56px, 6vw, 72px) 0 0;
    padding: 0;
    list-style: none;
    border-block: 1px solid var(--border-subtle);
}

.homepage-v2 .system-overview__agents li,
.homepage-v2 .system-overview__benefits li {
    padding: 22px 24px 22px 0;
    border-right: 0;
    font-size: 16px;
    line-height: 1.5;
}

.homepage-v2 .system-overview__agents strong {
    display: block;
    margin-bottom: 6px;
    font-family: var(--font-heading);
    font-size: 18px;
}

.homepage-v2 .system-overview__agents span {
    display: block;
    margin: 0;
    color: var(--text-gray);
    font-size: 16px;
    line-height: 1.5;
}

.homepage-v2 .system-overview__benefits li {
    padding-left: 30px;
    color: var(--text-gray);
    font-size: 16px;
}

.homepage-v2 .system-overview__benefits li::before { left: 0; }

/* Kernpunkte statt Kostenvergleich: der Vergleichswert stand direkt neben
   dem Preis und las sich dadurch wie eine monatliche Gebühr. Er liegt jetzt
   in .komp__more, hier stehen nur die drei Punkte, die überzeugen. */
.homepage-v2 .system-overview__keypoints {
    margin: 0;
    padding: 0;
    list-style: none;
}

.homepage-v2 .system-overview__keypoints li {
    padding-block: 18px;
    border-top: 1px solid var(--border-subtle);
}

.homepage-v2 .system-overview__keypoints li:first-child {
    padding-top: 0;
    border-top: 0;
}

.homepage-v2 .system-overview__keypoints strong {
    display: block;
    margin-bottom: 5px;
    font-family: var(--font-heading);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.homepage-v2 .system-overview__keypoints span {
    display: block;
    color: var(--text-gray);
    font-size: 16px;
    line-height: 1.5;
}

.homepage-v2 .system-overview__hint {
    max-width: 780px;
    margin: 26px 0 0;
    color: var(--text-gray);
    font-size: 17px;
    line-height: 1.6;
}

.homepage-v2 .system-overview__hint a {
    color: var(--text-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--border-light);
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    white-space: nowrap;
}

.homepage-v2 .system-overview__hint a:hover {
    color: var(--primary-color);
    text-decoration-color: var(--primary-color);
}

/* Aufklappbare Detailebene: Leistungsumfang, Zahlen und Vertragsdetails
   sind Nachweis, kein Erstargument — sie stehen bereit, drängen sich aber
   nicht vor die Entscheidung. */
.homepage-v2 .komp__more {
    margin: clamp(48px, 5vw, 64px) 0 0;
    border-top: 1px solid var(--border-subtle);
}

.homepage-v2 .komp__more > summary {
    max-width: 620px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-block: 20px;
    cursor: pointer;
    list-style: none;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
}

.homepage-v2 .komp__more > summary::-webkit-details-marker { display: none; }

.homepage-v2 .komp__more > summary::after {
    content: '';
    width: 11px;
    height: 11px;
    flex-shrink: 0;
    border-right: 2px solid var(--text-gray);
    border-bottom: 2px solid var(--text-gray);
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .2s ease;
}

.homepage-v2 .komp__more[open] > summary::after {
    transform: rotate(225deg) translate(-3px, -3px);
}

.homepage-v2 .komp__more-body { padding: 12px 0 8px; }

.homepage-v2 .komp__compare { max-width: 620px; }

.homepage-v2 .komp__compare-label {
    margin: 0 0 10px;
    color: var(--primary-color);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.homepage-v2 .komp__compare-lead {
    margin: 0 0 22px;
    color: var(--text-gray);
    font-size: 17px;
    line-height: 1.6;
}

.homepage-v2 .komp__note {
    max-width: var(--measure-text);
    margin: 22px 0 0;
    text-align: left;
}

.homepage-v2 .komp__roi { margin-top: clamp(48px, 5vw, 64px); text-align: left; }

.homepage-v2 .komp__roi p {
    max-width: 720px;
    margin: 0;
    font-size: 18px;
    line-height: 1.62;
}

/* Der Leistungsumfang war eine graue Karte in einer Seite, die gerade
   ihre Karten verloren hat. Er wird zur schlichten Liste an derselben
   Leseachse. */
.homepage-v2 .komp__pricebox {
    max-width: 620px;
    margin: clamp(40px, 4vw, 56px) 0 0;
    padding: 32px 0 0;
    border: 0;
    border-top: 1px solid var(--border-subtle);
    border-radius: 0;
    background: none;
}

.homepage-v2 .komp__pricelist { gap: 14px; }
.homepage-v2 .komp__pricelist li { font-size: 17px; }
.homepage-v2 .komp__pricelist li:first-child { font-size: 19px; font-weight: 700; }

.homepage-v2 .komp__tranchen {
    max-width: 620px;
    margin: 28px 0 0;
    text-align: left;
    font-size: 16px;
}

.homepage-v2 .komp__cta { margin-top: clamp(40px, 4vw, 56px); text-align: left; }
.homepage-v2 .komp__cta-note { margin: 20px 0 0; }

/* ── 6. FAQ — Zeilen statt Kacheln ───────────────────────────────────── */

/* Die Zeilenbreite bleibt hinter der Leseachse zurück: über die volle
   Railbreite stünde der Aufklapp-Pfeil weit entfernt von seiner Frage. */
.homepage-v2 .faq-list {
    max-width: 860px;
    margin: 0;
    border-top: 1px solid var(--border-subtle);
}

.homepage-v2 .faq-item {
    margin: 0;
    padding: 26px 0;
    border-radius: 0;
    border-bottom: 1px solid var(--border-subtle);
    background: none;
}

.homepage-v2 .faq-item summary {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.homepage-v2 .faq-item p {
    max-width: 68ch;
    margin-top: 16px;
    font-size: 17px;
    line-height: 1.7;
}

.homepage-v2 .faq-more { margin-top: 28px; padding: 0; }

/* inline-block statt flex: über Flex-Items hinweg zeichnet text-decoration
   in Blink keine Unterstreichung, der Link verlöre sein einziges Signal. */
.homepage-v2 .faq-more > summary {
    width: max-content;
    margin: 0;
    padding-block: 12px;
    display: inline-block;
    cursor: pointer;
    list-style: none;
}

.homepage-v2 .faq-more > summary::-webkit-details-marker { display: none; }

.homepage-v2 .faq-more__list { margin-top: 8px; }

.homepage-v2 .faq-follow-up {
    padding: 0 0 var(--section-padding);
    background: var(--bg-light);
}

.homepage-v2 .report-hint {
    max-width: 720px;
    margin: 0;
    padding-top: 28px;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-gray);
    text-align: left;
}

.homepage-v2 .report-hint p { margin: 0; font-size: 17px; line-height: 1.6; }
.homepage-v2 .report-hint strong { color: var(--text-dark); }
.homepage-v2 .report-hint a { color: var(--primary-color); font-weight: 700; }

/* ── 7. Abschluss — ruhige tiefgrüne Fläche statt Signalverlauf ──────── */

.homepage-v2 .final-cta {
    padding: clamp(88px, 10vw, 128px) 0;
    background: var(--color-dark-green);
    color: #fff;
    text-align: center;
}

.homepage-v2 .final-cta h2 {
    max-width: 760px;
    margin: 0 auto 20px;
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -.03em;
}

.homepage-v2 .final-cta > .container > p:not(.cta-secondary) {
    margin: 0 auto 36px;
    max-width: 560px;
    color: rgba(255, 255, 255, .84);
    font-size: 19px;
}

.homepage-v2 .final-cta .cta-secondary,
.homepage-v2 .final-cta .cta-secondary a {
    margin: 22px 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: 15px;
}

/* ── 8. Aus styles.css übernommene Startseiten-Bausteine ─────────────── */
/* Diese Regeln standen bis v=38 unqualifiziert im globalen Stylesheet,
   obwohl sie ausschließlich auf index.html vorkommen. */

/* padding statt gap: nur Innenabstand liegt innerhalb der Unterstreichung. */
.homepage-v2 .gewerke-links__list span { padding-left: 9px; color: var(--primary-color); }

.homepage-v2 .process-line__time {
    display: inline-block;
    color: var(--primary-color);
    font-size: 14px;
    font-weight: 700;
}

.homepage-v2 .system-overview__label,
.homepage-v2 .system-overview__origin {
    margin: 0;
    color: var(--text-gray);
    font-size: 14px;
    line-height: 1.45;
}

.homepage-v2 .system-overview__label {
    margin-bottom: 24px;
    color: var(--primary-color);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.homepage-v2 .system-overview__origin { margin-top: 26px; }

.homepage-v2 .system-overview__agents li,
.homepage-v2 .system-overview__benefits li { min-width: 0; }

.homepage-v2 .system-overview__agents li:nth-child(n + 4),
.homepage-v2 .system-overview__benefits li:nth-child(n + 4) { border-top: 1px solid var(--border-subtle); }

.homepage-v2 .system-overview__benefits li { position: relative; }

.homepage-v2 .system-overview__benefits li::before {
    content: '✓';
    position: absolute;
    color: var(--primary-color);
    font-weight: 700;
}

/* ── 9. Responsive — ohne unkontrollierte Bildskalierung ─────────────── */

@media (max-width: 900px) {
    .homepage-v2 .hero { min-height: 660px; }
    .homepage-v2 .hero::after {
        background:
            linear-gradient(180deg, rgba(8, 26, 21, .36) 0%, rgba(8, 26, 21, 0) 28%, rgba(8, 26, 21, 0) 56%, rgba(8, 26, 21, .48) 100%),
            linear-gradient(96deg,
                rgba(7, 30, 24, .92) 0%,
                rgba(7, 30, 24, .89) 28%,
                rgba(7, 30, 24, .82) 44%,
                rgba(7, 30, 24, .68) 60%,
                rgba(7, 30, 24, .5) 76%,
                rgba(7, 30, 24, .38) 90%,
                rgba(7, 30, 24, .36) 100%);
    }
    .homepage-v2 .hero__background img { object-position: 68% center; }
    .homepage-v2 .system-overview { grid-template-columns: 1fr; }
    .homepage-v2 .problem-story {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        row-gap: clamp(56px, 7vw, 80px);
    }
    .homepage-v2 .problem-story__item,
    .homepage-v2 .problem-story__copy {
        display: block;
        grid-row: auto;
        grid-template-rows: none;
    }
    .homepage-v2 .problem-story__media { max-width: 560px; }
    .homepage-v2 .problem-story__copy { max-width: 620px; }
    .homepage-v2 .problem-story__copy h3 { font-size: 28px; }
    .homepage-v2 .system-overview__device { max-width: 620px; }
    .homepage-v2 .system-overview__investment { padding: 0; border-left: 0; }
    .homepage-v2 .process-line { grid-template-columns: 1fr; gap: 40px; max-width: 620px; }
}

@media (max-width: 560px) {
    .homepage-v2 .hero { min-height: 700px; }
    .homepage-v2 .hero::after {
        background:
            linear-gradient(180deg, rgba(8, 26, 21, .4) 0%, rgba(8, 26, 21, .04) 30%, rgba(8, 26, 21, .1) 54%, rgba(8, 26, 21, .56) 100%),
            linear-gradient(96deg,
                rgba(7, 30, 24, .93) 0%,
                rgba(7, 30, 24, .9) 40%,
                rgba(7, 30, 24, .84) 64%,
                rgba(7, 30, 24, .7) 84%,
                rgba(7, 30, 24, .62) 100%);
    }
    /* Schmaler Ausschnitt: ein niedrigerer Wert schiebt den sichtbaren
       Bildbereich nach links und den Betriebsinhaber damit an den rechten
       Rand — dorthin, wo die Headline-Zeilen kurz auslaufen. */
    .homepage-v2 .hero__background img { object-position: 56% center; }
    .homepage-v2 .hero h1 { font-size: clamp(36px, 10vw, 48px); }
    .homepage-v2 .hero__actions { align-items: stretch; flex-direction: column; }
    .homepage-v2 .hero .btn-white { width: 100%; }
    .homepage-v2 .problem,
    .homepage-v2 .process,
    .homepage-v2 .offer,
    .homepage-v2 .faq { padding-block: 72px; }
    .homepage-v2 .problem-story__media,
    .homepage-v2 .system-overview__device { max-width: 100%; }
    .homepage-v2 .problem-story__copy p,
    .homepage-v2 .process-line__step p { font-size: 17px; }
    .homepage-v2 .system-overview__agents,
    .homepage-v2 .system-overview__benefits { grid-template-columns: 1fr; }
    .homepage-v2 .system-overview__agents li,
    .homepage-v2 .system-overview__benefits li { border-top: 1px solid var(--border-subtle); }
    .homepage-v2 .system-overview__agents li:first-child,
    .homepage-v2 .system-overview__benefits li:first-child { border-top: 0; }
    .homepage-v2 .problem > .container > h2,
    .homepage-v2 .faq > .container > h2,
    .homepage-v2 .section-head h2,
    .homepage-v2 .komp__headline { font-size: clamp(28px, 7.5vw, 34px); }
    .homepage-v2 .gewerke-links h2 { font-size: 24px; }
    .homepage-v2 .problem-story__copy h3 { font-size: 25px; }
    .homepage-v2 .faq-item summary { font-size: 18px; }
    .homepage-v2 .faq-item p { font-size: 16px; }
    .homepage-v2 .final-cta { padding-bottom: var(--section-padding); }
}

@media (prefers-reduced-motion: reduce) {
    .homepage-v2 *,
    .homepage-v2 *::before,
    .homepage-v2 *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
