/* ========================================================================
   Gewerke-Landingpages V2 — dasselbe ruhige System wie die Startseite
   Wird NACH styles.css geladen und gilt ausschließlich unter
   <body class="gewerke-v2">. Jede Regel MUSS mit .gewerke-v2 beginnen;
   tests/gewerke-redesign.test.js erzwingt das, weil diese Seiten ihre
   Komponentenklassen (.komp, .faq-item, .cta) mit den Leistungsseiten
   teilen, die unverändert bleiben sollen.

   Leitidee wie auf der Startseite: eine einzige Leseachse, Trennung durch
   Weißraum und Haarlinien statt durch Karten.
   ======================================================================== */

.gewerke-v2 {
    --rail: 1128px;
    --measure-heading: 900px;
    --measure-text: 620px;
}

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

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

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

.gewerke-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%);
}

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

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

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

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

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

.gewerke-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;
}

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

.gewerke-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;
}

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

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

.gewerke-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;
}

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

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

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

/* ── 2. Faktenzeile statt Kartenreihe ────────────────────────────────── */

.gewerke-v2 .trust-strip {
    padding: 0;
    border-top: 0;
    border-bottom: 1px solid var(--border-subtle);
    background: var(--bg-light);
}

.gewerke-v2 .trust-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    text-align: left;
}

.gewerke-v2 .trust-item {
    padding: 30px 28px 30px 0;
    border: 0;
    border-radius: 0;
    background: none;
}

.gewerke-v2 .trust-label { margin-bottom: 8px; }

.gewerke-v2 .trust-value {
    font-size: 16px;
    line-height: 1.45;
}

/* ── 3. Sectionrhythmus und Leseachse ────────────────────────────────── */

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

.gewerke-v2 .problem > .container > h2,
.gewerke-v2 .faq > .container > h2,
.gewerke-v2 .section-head h2,
.gewerke-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;
    overflow-wrap: break-word;
    hyphens: auto;
}

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

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

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

/* ── 4. Problem-Triptychon ───────────────────────────────────────────── */

.gewerke-v2 .problem-story {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto auto;
    column-gap: clamp(28px, 3vw, 44px);
    row-gap: 0;
}

.gewerke-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;
    color: inherit;
    text-decoration: none;
}

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

.gewerke-v2 .problem-story__media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transition: transform .3s ease;
}

.gewerke-v2 .problem-story__item:hover .problem-story__media img,
.gewerke-v2 .problem-story__item:focus-visible .problem-story__media img {
    transform: scale(1.03);
}

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

.gewerke-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;
}

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

/* ── 5. Hörprobe und Ablauf ──────────────────────────────────────────── */

/* Nur der Ablauf bekommt eine getönte Fläche — wie auf der Startseite.
   Die Hörprobe steht auf Weiß, sonst verschmelzen zwei graue Blöcke. */
.gewerke-v2 .audio-demo {
    background: var(--bg-light);
    text-align: left;
}

.gewerke-v2 .audio-demo__player {
    max-width: 620px;
    margin: 0;
    padding: 24px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    box-shadow: none;
}

.gewerke-v2 .audio-demo__note { text-align: left; }

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

.gewerke-v2 .process-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(40px, 6vw, 80px);
    margin-bottom: 0;
}

.gewerke-v2 .step-card {
    padding: 26px 0 0;
    border: 0;
    border-top: 1px solid var(--border-subtle);
    border-radius: 0;
    background: none;
    box-shadow: none;
}

.gewerke-v2 .step-index {
    margin-bottom: 0;
    font-family: var(--font-heading);
    font-size: 13px;
    letter-spacing: .16em;
    color: var(--primary-color);
}

.gewerke-v2 .step-card h3 {
    margin: 18px 0 12px;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.gewerke-v2 .step-card p {
    margin: 0;
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.62;
}

.gewerke-v2 .step-time {
    margin-top: 20px;
    padding: 0;
    border-radius: 0;
    background: none;
    color: var(--primary-color);
    font-size: 14px;
}

/* ── 6. Preisblock ───────────────────────────────────────────────────── */

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

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

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

/* Der Anker bleibt sichtbar: ein einmaliger Vergleichswert erzeugt nicht
   die Fehllesart einer monatlichen Gebühr, und er ist das stärkste
   Argument der Seite. */
.gewerke-v2 .komp__comparison {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(28px, 4vw, 56px);
    max-width: 860px;
    margin: 0 0 clamp(56px, 7vw, 88px);
    padding: 0;
    border: 0;
    background: none;
}

.gewerke-v2 .komp__pump,
.gewerke-v2 .komp__cost { text-align: left; }

.gewerke-v2 .komp__pump img {
    max-width: 150px;
    margin: 0 0 10px;
}

.gewerke-v2 .komp__equals { text-align: left; }
.gewerke-v2 .komp__equals-text { margin-bottom: 10px; }

.gewerke-v2 .komp__equals-to { max-width: 300px; }

.gewerke-v2 .komp__equals-to strong {
    display: block;
    margin-bottom: 5px;
    font-family: var(--font-heading);
    font-size: 19px;
    letter-spacing: -.01em;
}

.gewerke-v2 .komp__equals-to span {
    display: block;
    color: var(--text-gray);
    font-size: 16px;
    line-height: 1.5;
}

.gewerke-v2 .komp__team {
    display: grid;
    grid-template-columns: 520px minmax(0, 1fr);
    grid-template-areas:
        'head  head'
        'device points'
        'cards cards';
    align-items: center;
    column-gap: clamp(56px, 8vw, 112px);
    row-gap: 0;
}

.gewerke-v2 .komp__team-head {
    grid-area: head;
    margin: 0 0 clamp(32px, 4vw, 44px);
    text-align: left;
}

.gewerke-v2 .komp__team-title {
    margin: 0;
    text-align: left;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--primary-color);
}

.gewerke-v2 .komp__device {
    grid-area: device;
    width: 100%;
    max-width: 520px;
    margin: 0;
    text-align: left;
}

.gewerke-v2 .komp__device img {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: var(--radius-sm);
}

.gewerke-v2 .komp__device-caption {
    max-width: none;
    margin: 12px 0 0;
    text-align: left;
}

.gewerke-v2 .komp__keypoints {
    grid-area: points;
    margin: 0;
    padding: 0;
    list-style: none;
}

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

.gewerke-v2 .komp__keypoints li:first-child {
    padding-top: 0;
    border-top: 0;
}

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

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

/* Die sechs Agenten verlieren Karte und Icon und werden zur Textmatrix. */
.gewerke-v2 .komp__cards {
    grid-area: cards;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: clamp(56px, 6vw, 72px) 0 0;
    border-block: 1px solid var(--border-subtle);
}

.gewerke-v2 .komp__card {
    padding: 22px 24px 22px 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    text-align: left;
}

.gewerke-v2 .komp__card:hover { transform: none; box-shadow: none; }

.gewerke-v2 .komp__card:nth-child(n + 4) { border-top: 1px solid var(--border-subtle); }

.gewerke-v2 .komp__card-icon { display: none; }

.gewerke-v2 .komp__card-title {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
}

.gewerke-v2 .komp__card ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gewerke-v2 .komp__card li {
    color: var(--text-gray);
    font-size: 16px;
    line-height: 1.5;
}

/* ── 7. Detailebene ──────────────────────────────────────────────────── */

.gewerke-v2 .komp__more {
    margin: clamp(48px, 5vw, 64px) 0 0;
    border-top: 1px solid var(--border-subtle);
}

.gewerke-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;
}

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

.gewerke-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;
}

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

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

.gewerke-v2 .komp__benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    border-block: 1px solid var(--border-subtle);
}

.gewerke-v2 .komp__benefit {
    display: block;
    padding: 22px 24px 22px 0;
    border: 0;
    border-radius: 0;
    background: none;
    color: var(--text-gray);
    font-size: 16px;
    line-height: 1.5;
    text-align: left;
}

.gewerke-v2 .komp__benefit:nth-child(n + 4) { border-top: 1px solid var(--border-subtle); }
.gewerke-v2 .komp__benefit-icon { display: none; }
.gewerke-v2 .komp__benefit br { display: none; }

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

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

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

.gewerke-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;
}

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

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

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

/* ── 8. FAQ als Zeilen ───────────────────────────────────────────────── */

.gewerke-v2 .faq-list {
    max-width: 860px;
    margin: 0;
    border-top: 1px solid var(--border-subtle);
}

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

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

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

/* ── 9. Abschlussfläche ──────────────────────────────────────────────── */

.gewerke-v2 .cta {
    padding: clamp(88px, 10vw, 128px) 0;
    background: var(--color-dark-green);
}

.gewerke-v2 .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;
}

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

/* ── 10. Responsive ──────────────────────────────────────────────────── */

@media (max-width: 900px) {
    .gewerke-v2 .hero { min-height: 660px; }
    .gewerke-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%);
    }
    .gewerke-v2 .hero__background img { object-position: 68% center; }
    .gewerke-v2 .trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gewerke-v2 .trust-item:nth-child(n + 3) { border-top: 1px solid var(--border-subtle); }
    .gewerke-v2 .problem-story {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        row-gap: clamp(56px, 7vw, 80px);
    }
    .gewerke-v2 .problem-story__item,
    .gewerke-v2 .problem-story__copy {
        display: block;
        grid-row: auto;
        grid-template-rows: none;
    }
    .gewerke-v2 .problem-story__media { max-width: 560px; }
    .gewerke-v2 .problem-story__copy { max-width: 620px; }
    .gewerke-v2 .problem-story__copy h3 { font-size: 28px; }
    .gewerke-v2 .process-grid { grid-template-columns: 1fr; gap: 40px; max-width: 620px; }
    .gewerke-v2 .komp__team {
        grid-template-columns: 1fr;
        grid-template-areas: 'head' 'device' 'points' 'cards';
        row-gap: 40px;
    }
    .gewerke-v2 .komp__device { max-width: 620px; }
    .gewerke-v2 .komp__cards { margin-top: 0; }
}

@media (max-width: 560px) {
    .gewerke-v2 .hero { min-height: 700px; }
    .gewerke-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%);
    }
    .gewerke-v2 .hero__background img { object-position: 56% center; }
    .gewerke-v2 .hero h1 { font-size: clamp(36px, 10vw, 48px); }
    .gewerke-v2 .hero__actions { align-items: stretch; flex-direction: column; }
    .gewerke-v2 .hero .btn-white { width: 100%; }
    .gewerke-v2 .problem,
    .gewerke-v2 .process,
    .gewerke-v2 .offer,
    .gewerke-v2 .faq,
    .gewerke-v2 .audio-demo { padding-block: 72px; }
    .gewerke-v2 .problem > .container > h2,
    .gewerke-v2 .faq > .container > h2,
    .gewerke-v2 .section-head h2,
    .gewerke-v2 .komp__headline { font-size: clamp(28px, 7.5vw, 34px); }
    .gewerke-v2 .trust-grid { grid-template-columns: 1fr; }
    .gewerke-v2 .trust-item { padding-inline: 0; }
    .gewerke-v2 .trust-item:nth-child(n + 2) { border-top: 1px solid var(--border-subtle); }
    .gewerke-v2 .problem-story__media,
    .gewerke-v2 .komp__device { max-width: 100%; }
    .gewerke-v2 .problem-story__copy p,
    .gewerke-v2 .step-card p { font-size: 17px; }
    .gewerke-v2 .komp__cards,
    .gewerke-v2 .komp__benefits { grid-template-columns: 1fr; }
    .gewerke-v2 .komp__card:nth-child(n + 2),
    .gewerke-v2 .komp__benefit:nth-child(n + 2) { border-top: 1px solid var(--border-subtle); }
    .gewerke-v2 .faq-item summary { font-size: 18px; }
    .gewerke-v2 .faq-item p { font-size: 16px; }
}

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

/* Brücke in die Produktseite: steht zwischen Agentenraster und Detailebene. */
.gewerke-v2 .komp__deeplink {
    max-width: 620px;
    margin: clamp(32px, 4vw, 44px) 0 0;
}

.gewerke-v2 .komp__deeplink a {
    min-height: 44px;
    display: inline-block;
    padding-block: 11px;
    color: var(--text-dark);
    font-size: 17px;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--border-light);
    text-decoration-thickness: 1px;
    text-underline-offset: 6px;
}

.gewerke-v2 .komp__deeplink a:hover {
    color: var(--primary-color);
    text-decoration-color: var(--primary-color);
}

/* Gewerkespezifischer Zusatz unter dem Agentenraster. Stand vorher im
   ROI-Absatz, der mit der Detailebene auf die Produktseite gewandert ist. */
.gewerke-v2 .komp__gewerkenote {
    max-width: var(--measure-text);
    margin: clamp(32px, 4vw, 44px) 0 0;
    color: var(--text-gray);
    font-size: 17px;
    line-height: 1.6;
}
