/* ============================================
 * m36_about_intro - 2-Spalten Figma-Layout
 *   Image-Col: 754px (+24px Frame-Overhang rechts/unten)
 *   Gap:       125px
 *   Text-Col:  597px Body / 713px Headline
 *   Topline 73px unter Image-Top, Body 231px unter Image-Top
 * ============================================ */
.m36_about_intro {
    background: #F7F7F7;
    padding: clamp(48px, 7vw, 110px) 0 clamp(72px, 9vw, 134px); /* extra bottom fuer Frame-Overhang */
}
/* Container-Breite kommt aus globalem .hs_container + data-container Attribut */

.m36_grid {
    display: grid;
    /* Figma: Bild visible 754 (grid 629 + -125 margin bleed), Text 713.
       Grid-Ratio 629:713 → Text-Col startet bei x=979 (Figma-exakt). */
    grid-template-columns: minmax(0, 629fr) minmax(0, 713fr);
    column-gap: clamp(40px, 8vw, 125px);
    align-items: start;
}

/* --- linke Spalte: Bild bleedet zur Container-Linkskante. Figma 75:41 hat das
   Bild bei x=100 (= Container-Edge), nicht innen-paddet wie die Folge-Module.
   Negativer margin-left zieht das Bild raus, vergroessert die Bild-Spalte um
   das Container-Padding und bringt den linken Bildrand bis an den Container-
   Rand heran. --- */
.m36_image_col {
    position: relative;
}
.m36_about_intro.m36_layout_image_left .m36_image_col {
    margin-left: calc(var(--hs-container-px) * -1);
}
.m36_about_intro.m36_layout_image_right .m36_image_col {
    margin-right: calc(var(--hs-container-px) * -1);
}
.m36_image_wrap {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: calc(678 / 754 * 100%);
}
@supports (aspect-ratio: 1) {
    .m36_image_wrap {
        height: auto;
        padding-top: 0;
        aspect-ratio: 754 / 678;
    }
}
.m36_image_frame {
    position: absolute;
    inset: 24px -24px -24px 24px;
    border: 1px solid var(--hs-gold);
    pointer-events: none;
    z-index: 0;
}
.m36_image {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
}
.m36_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- rechte Spalte: Text-Block --- */
.m36_text_col {
    /* Topline ~73px unter Image-Top (in Figma: 1344-1271=73) */
    padding-top: clamp(24px, 4.8vw, 73px);
}
.m36_headline {
    color: var(--hs-dark);
    font-weight: 600;
    font-size: clamp(26px, 2.4vw, 40px);
    line-height: 1.125;
    letter-spacing: 0.03em;
    margin: 18px 0 32px;
    /* Headline darf ueber Body hinausragen (Figma: 713 vs 597) */
    max-width: 720px;
}
.m36_headline em,
.m36_headline i {
    font-style: italic;
    font-weight: 600;
    font-family: var(--hs-font-display);
}
.m36_text {
    color: #1d1d1b;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.03em;
    margin-bottom: 40px;
    max-width: 600px;
}
.m36_text p { margin: 0 0 1.5em; }
.m36_text p:last-child { margin-bottom: 0; }

/* WYSIWYG ul/li: Gold-Marker Bullets (kompatibel zu m40 Style) */
.m36_text ul {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
}
.m36_text ul li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 8px;
    color: #1d1d1b;
    font-weight: 300;
    font-size: 16px;
    line-height: 24px;
}
.m36_text ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 18px;
    height: 16px;
    background-color: var(--hs-gold);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 18 16.1193' xmlns='http://www.w3.org/2000/svg'><path d='M7.57887 16.1193C7.57635 16.1193 7.57341 16.1193 7.57089 16.1193C7.46679 16.1172 7.36856 16.0727 7.29804 15.9963L0.100757 8.17022C-0.0226536 8.03589 -0.0339872 7.83356 0.0738924 7.68623C0.181772 7.53931 0.378222 7.48894 0.543609 7.56617L7.13098 10.6506C7.18639 10.6766 7.25187 10.664 7.29426 10.62L17.3426 0.117869C17.4786 -0.0244314 17.7011 -0.0399627 17.8555 0.0826086C18.01 0.20518 18.0457 0.425137 17.9378 0.590104L7.94238 15.9023C7.92811 15.9245 7.91132 15.9447 7.89285 15.9636L7.84877 16.0076C7.77699 16.079 7.67961 16.1193 7.57887 16.1193Z' fill='black'/></svg>") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 18 16.1193' xmlns='http://www.w3.org/2000/svg'><path d='M7.57887 16.1193C7.57635 16.1193 7.57341 16.1193 7.57089 16.1193C7.46679 16.1172 7.36856 16.0727 7.29804 15.9963L0.100757 8.17022C-0.0226536 8.03589 -0.0339872 7.83356 0.0738924 7.68623C0.181772 7.53931 0.378222 7.48894 0.543609 7.56617L7.13098 10.6506C7.18639 10.6766 7.25187 10.664 7.29426 10.62L17.3426 0.117869C17.4786 -0.0244314 17.7011 -0.0399627 17.8555 0.0826086C18.01 0.20518 18.0457 0.425137 17.9378 0.590104L7.94238 15.9023C7.92811 15.9245 7.91132 15.9447 7.89285 15.9636L7.84877 16.0076C7.77699 16.079 7.67961 16.1193 7.57887 16.1193Z' fill='black'/></svg>") center / contain no-repeat;
}

/* Ghost-Button bekommt Figma-Breite (305px) */
.m36_text_col .hs_btn_ghost {
    width: 305px;
    max-width: 100%;
    min-height: 73px;
}

/* === Variante mit Phasen-Plan (m36_has_phases) ===
   Figma 112:13 — Topline + Headline OBERHALB des Grids. Darunter Grid mit Bild
   links (spannt vertikal) und Text+Phasen rechts. Cream-BG (#F2EEE5) wickelt
   sich direkt um den Phasen-Block (Headline + Phasen) und reicht via -100vw
   Pseudo-Element bis zu den Viewport-Kanten. So bleibt der Cream-Bereich
   IMMER deckungsgleich mit den Phasen, egal wie lang der Body-Text ist. */
.m36_about_intro.m36_has_phases {
    background: #f7f7f7;
    position: relative;
    padding-top: clamp(40px, 4vw, 70px);
    /* Section-eigenes padding-bottom = 0; den unteren Spielraum uebernimmt der
       Phasen-Block (samt Cream-BG). So liegt keine #f7f7f7-Lücke mehr unter
       dem Cream-Bereich. */
    padding-bottom: 0;
    overflow-x: clip; /* Cream-Pseudo nach -100vw nicht horizontal scrollen lassen */
}

/* Header (Topline + Headline) oberhalb des Grids — Figma: Titel beschraenkt sich
   auf die linke Container-Haelfte (~50%), nicht ueber die ganze Breite. */
.m36_about_intro.m36_has_phases .m36_header {
    margin-bottom: clamp(30px, 3vw, 50px);
    max-width: 50%;
}
@media (max-width: 992px) {
    /* Auf Tablet/Mobile: volle Breite, sonst quetscht der lange Titel
       (z.B. "Bauträgervertrieb") und bricht haesslich um. */
    .m36_about_intro.m36_has_phases .m36_header {
        max-width: 100%;
    }
}

/* Im has-phases Modus: Text-Col faengt OBEN beim Bild an UND ist flex-column,
   damit phases-block via margin-top:auto vertikal zentriert werden kann. */
.m36_about_intro.m36_has_phases .m36_text_col {
    padding-top: 0;
    display: flex;
    flex-direction: column;
}

/* Bild streckt sich vertikal ueber About-Text + Phasen-Block — und im
   has-phases Modus OHNE den goldenen Versatz-Rahmen (Figma 112:13). */
.m36_about_intro.m36_has_phases .m36_image_col {
    align-self: stretch;
    display: flex;
}
.m36_about_intro.m36_has_phases .m36_image_col .m36_image_wrap {
    flex: 1;
    height: 100%;
    padding-top: 0;
    min-height: clamp(420px, 50vw, 815px);
}
.m36_about_intro.m36_has_phases .m36_image_frame { display: none; }

/* Phasen-Block: vertikal zentriert in der Rest-Hoehe der Text-Col (=Image-Hoehe).
   Cream-BG wird via ::before um den Block gewickelt — die Pseudo dehnt sich
   horizontal bis weit ueber die Viewport-Kanten, damit der Cream visuell die
   ganze Section-Breite einnimmt (inkl. hinter dem Bild). */
.m36_about_intro.m36_has_phases .m36_phases_block {
    margin-top: auto;
    margin-bottom: auto;
    padding: clamp(30px, 4vw, 70px) 0;
    position: relative;
    isolation: isolate;
}
.m36_about_intro.m36_has_phases .m36_phases_block::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -100vw;
    right: -100vw;
    background: #F2EEE5;
    z-index: -1;
}

/* Phasen-Block unter dem m36_text — Headline gross, dann gold Phase-Labels */
.m36_phases_block {
    margin-top: clamp(40px, 5vw, 80px);
}
.m36_phases_headline {
    color: var(--hs-dark);
    font-family: var(--hs-font-display);
    font-weight: 600;
    font-size: clamp(28px, 2.6vw, 40px);
    line-height: 1.125;
    letter-spacing: 1.2px;
    margin: 0 0 32px;
}
.m36_phases {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.m36_phase_label {
    color: var(--hs-gold);
    font-family: var(--hs-font-display);
    font-weight: 400;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: 0.48px;
    margin: 0 0 6px;
}
.m36_phase_text {
    color: #1d1d1b;
    font-family: var(--hs-font-body);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.03em;
}
.m36_phase_text p { margin: 0 0 0.5em; }
.m36_phase_text p:last-child { margin-bottom: 0; }

@media (max-width: 992px) {
    .m36_grid,
    .m36_about_intro.m36_layout_image_right .m36_grid { grid-template-columns: 1fr; gap: 36px; }
    .m36_about_intro.m36_layout_image_right .m36_image_col,
    .m36_about_intro.m36_layout_image_right .m36_text_col  { order: initial; }
    .m36_image_frame { inset: 16px -16px -16px 16px; }
    .m36_about_intro.m36_layout_image_right .m36_image_frame { inset: 16px 16px -16px -16px; }
    .m36_text_col { padding-top: 0; }
    .m36_headline { max-width: 100%; }
    .m36_text { max-width: 100%; }
    .m36_text_col .hs_btn_ghost { width: 100%; }
}

/* Image-Right Variante */
.m36_about_intro.m36_layout_image_right .m36_grid {
    grid-template-columns: minmax(0, 713fr) minmax(0, 629fr);
}
.m36_about_intro.m36_layout_image_right .m36_image_col  { order: 2; }
.m36_about_intro.m36_layout_image_right .m36_text_col   { order: 1; }
.m36_about_intro.m36_layout_image_right .m36_image_frame {
    inset: 24px 24px -24px -24px;
}

/* Stat-Badge ueber dem Bild (z.B. "100%" + "Rechtsicher") */
.m36_image_wrap { position: relative; }
.m36_image_wrap .m36_badge {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
    background: var(--hs-gold);
    color: #fff;
    padding: clamp(24px, 2vw, 40px) clamp(28px, 3vw, 50px);
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: min(280px, 100%);
    max-width: 100%;
}
.m36_about_intro.m36_layout_image_right .m36_image_wrap .m36_badge {
    left: auto;
    right: 0;
}
.m36_badge_value {
    color: #fff;
    font-family: var(--hs-font-display);
    font-weight: 600;
    font-size: clamp(36px, 4vw, 60px);
    line-height: 1;
    letter-spacing: 0.03em;
}
.m36_badge_label {
    color: #fff;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.03em;
}
