@import url('https://fonts.googleapis.com/css2?family=UnifrakturCook:wght@700&display=swap');


/* ==========================================================
   RUFFUS REVIEWS
========================================================== */

.rr-reviews {
    position:relative;

    width:100%;

    overflow:hidden;

    background:#f6f6f2;

    color:#090909;

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}


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


/* ==========================================================
   DEKO
========================================================== */

.rr-reviews::after {
    content:"";

    position:absolute;

    right:-140px;
    top:-170px;

    width:370px;
    height:370px;

    background:#FEEE02;

    transform:
        rotate(22deg);

    opacity:.09;

    pointer-events:none;
}


/* ==========================================================
   INNER
========================================================== */

.rr-inner {
    position:relative;

    z-index:2;

    width:100%;
    max-width:1320px;

    margin:
        0
        auto;

    padding:
        100px
        25px
        105px;
}


/* ==========================================================
   HEAD
========================================================== */

.rr-head {
    display:grid;

    grid-template-columns:
        1.08fr
        .92fr;

    gap:75px;

    align-items:end;

    margin-bottom:42px;
}


/* ==========================================================
   KICKER
========================================================== */

.rr-kicker {
    display:inline-flex;

    align-items:center;

    gap:11px;

    margin-bottom:20px;

    color:#090909;

    font-size:13px;

    line-height:1;

    font-weight:700;

    letter-spacing:.9px;

    text-transform:uppercase;
}


.rr-kicker::before {
    content:"";

    width:38px;
    height:4px;

    background:#FEEE02;

    transform-origin:
        left center;
}


/* ==========================================================
   TITLE
========================================================== */

.rr-title {
    max-width:690px;

    margin:0;

    color:#090909;

    font-size:
        clamp(
            40px,
            4vw,
            55px
        );

    line-height:1.04;

    letter-spacing:-1.8px;

    font-weight:750;
}


/* ==========================================================
   MARKER
========================================================== */

.rr-marker {
    position:relative;

    display:inline-block;

    white-space:nowrap;

    z-index:1;

    padding:
        .02em
        .13em
        .08em;

    margin-left:
        -.05em;

    color:
        #090909 !important;

    font-family:
        "UnifrakturCook",
        serif !important;

    font-size:1.06em;

    line-height:.92;

    font-weight:
        700 !important;
}


.rr-marker::before {
    content:"";

    position:absolute;

    left:0;
    right:0;

    top:8%;
    bottom:0;

    background:#FEEE02;

    z-index:-1;

    transform:
        skewX(-4deg)
        scaleX(1);

    transform-origin:
        left center;
}


.rr-marker::after {
    content:"";

    position:absolute;

    left:-5px;
    right:7px;

    bottom:-2px;

    height:6px;

    background:#FEEE02;

    z-index:-1;

    transform:
        skewX(8deg);
}


/* ==========================================================
   TEXT RECHTS
========================================================== */

.rr-head-right {
    max-width:500px;

    margin-left:auto;
}


.rr-description {
    margin:0;

    color:#555555;

    font-size:17px;

    line-height:1.7;
}


.rr-description p {
    margin:0;
}


.rr-description strong {
    color:#090909;

    font-weight:700;
}


/* ==========================================================
   TRUSTINDEX
========================================================== */

.rr-trustindex {
    position:relative;

    padding:
        36px
        32px;

    background:#ffffff;

    border:
        1px solid
        #dfdfda;

    overflow:hidden;

    transition:
        box-shadow .25s ease,
        transform .25s ease;
}


.rr-trustindex::before {
    content:"";

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:5px;

    background:#090909;
}


.rr-trustindex::after {
    content:"";

    position:absolute;

    top:0;
    left:0;

    width:165px;
    height:5px;

    background:#FEEE02;

    transition:
        width .35s ease;
}


.rr-trustindex:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0
        20px
        45px
        rgba(0,0,0,.07);
}


.rr-trustindex:hover::after {
    width:250px;
}


.rr-trustindex > * {
    max-width:100%;
}


/* ==========================================================
   VERTRAUENSPUNKTE
========================================================== */

.rr-context {
    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    margin-top:16px;

    border:
        1px solid
        #dfdfda;

    background:#ffffff;
}


.rr-context-item {
    min-height:86px;

    padding:
        20px
        24px;

    display:flex;

    align-items:center;

    gap:14px;

    border-right:
        1px solid
        #e5e5df;

    color:#090909;

    font-size:14px;

    line-height:1.4;

    font-weight:700;

    transition:
        background .22s ease;
}


.rr-context-item:last-child {
    border-right:0;
}


.rr-context-item:hover {
    background:
        #fafaf6;
}


.rr-context-icon {
    width:42px;
    height:42px;

    flex:
        0
        0
        42px;

    display:flex;

    align-items:center;
    justify-content:center;

    background:#FEEE02;

    color:#090909;

    font-size:15px;

    transition:
        transform .22s ease;
}


.rr-context-icon i,
.rr-context-icon svg {
    color:#090909;

    fill:#090909;
}


.rr-context-item:hover
.rr-context-icon {
    transform:
        translateY(-3px);
}


/* ==========================================================
   CTA
========================================================== */

.rr-bottom {
    display:grid;

    grid-template-columns:
        1.35fr
        .65fr;

    margin-top:16px;

    background:#090909;
}


.rr-bottom-left {
    min-height:94px;

    padding:
        24px
        30px;

    display:flex;

    align-items:center;

    gap:17px;

    color:
        rgba(255,255,255,.68);

    font-size:14px;

    line-height:1.55;
}


.rr-bottom-check {
    width:44px;
    height:44px;

    flex:
        0
        0
        44px;

    display:flex;

    align-items:center;
    justify-content:center;

    background:#FEEE02;

    color:#090909;

    font-size:15px;
}


.rr-bottom-left strong {
    display:inline;

    color:#ffffff;

    font-weight:700;
}


.rr-bottom-right {
    display:flex;

    align-items:center;
    justify-content:flex-end;

    padding:
        20px
        28px;

    background:#FEEE02;
}


/* ==========================================================
   BUTTON
========================================================== */

.rr-btn {
    min-height:54px;

    padding:
        0
        24px;

    display:inline-flex;

    align-items:center;
    justify-content:center;

    gap:10px;

    background:#090909;

    border:
        2px solid
        #090909;

    color:
        #ffffff !important;

    text-decoration:
        none !important;

    font-size:15px;

    line-height:1;

    font-weight:700;

    white-space:nowrap;

    transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease,
        border-color .2s ease;
}


.rr-btn:hover {
    transform:
        translateY(-2px);

    background:#ffffff;

    border-color:#ffffff;

    color:
        #090909 !important;
}


.rr-btn i {
    transition:
        transform .2s ease;
}


.rr-btn:hover i {
    transform:
        translateX(4px);
}


/* ==========================================================
   SCROLL ANIMATION
========================================================== */

.rr-reviews.rr-js
.rr-kicker,

.rr-reviews.rr-js
.rr-title,

.rr-reviews.rr-js
.rr-head-right,

.rr-reviews.rr-js
.rr-trustindex,

.rr-reviews.rr-js
.rr-context,

.rr-reviews.rr-js
.rr-bottom {
    opacity:0;

    transform:
        translateY(24px);
}


.rr-reviews.rr-js
.rr-kicker {
    transition:
        opacity .65s ease .08s,
        transform .65s
        cubic-bezier(.2,.75,.3,1)
        .08s;
}


.rr-reviews.rr-js
.rr-title {
    transition:
        opacity .72s ease .20s,
        transform .72s
        cubic-bezier(.2,.75,.3,1)
        .20s;
}


.rr-reviews.rr-js
.rr-head-right {
    transition:
        opacity .72s ease .35s,
        transform .72s
        cubic-bezier(.2,.75,.3,1)
        .35s;
}


.rr-reviews.rr-js
.rr-trustindex {
    transition:
        opacity .75s ease .48s,
        transform .75s
        cubic-bezier(.2,.75,.3,1)
        .48s,
        box-shadow .25s ease;
}


.rr-reviews.rr-js
.rr-context {
    transition:
        opacity .7s ease .62s,
        transform .7s
        cubic-bezier(.2,.75,.3,1)
        .62s;
}


.rr-reviews.rr-js
.rr-bottom {
    transition:
        opacity .7s ease .74s,
        transform .7s
        cubic-bezier(.2,.75,.3,1)
        .74s;
}


/* KICKER LINE */

.rr-reviews.rr-js
.rr-kicker::before {
    transform:
        scaleX(0);

    transition:
        transform
        .65s
        cubic-bezier(.22,.8,.28,1)
        .55s;
}


/* MARKER */

.rr-reviews.rr-js
.rr-marker::before {
    transform:
        skewX(-4deg)
        scaleX(0);

    transition:
        transform
        .78s
        cubic-bezier(.22,.8,.24,1)
        1.05s;
}


.rr-reviews.rr-js
.rr-marker::after {
    transform:
        skewX(8deg)
        scaleX(0);

    transform-origin:
        left center;

    transition:
        transform
        .68s
        cubic-bezier(.22,.8,.24,1)
        1.22s;
}


/* SICHTBAR */

.rr-reviews.rr-js.rr-visible
.rr-kicker,

.rr-reviews.rr-js.rr-visible
.rr-title,

.rr-reviews.rr-js.rr-visible
.rr-head-right,

.rr-reviews.rr-js.rr-visible
.rr-trustindex,

.rr-reviews.rr-js.rr-visible
.rr-context,

.rr-reviews.rr-js.rr-visible
.rr-bottom {
    opacity:1;

    transform:
        translateY(0);
}


.rr-reviews.rr-js.rr-visible
.rr-kicker::before {
    transform:
        scaleX(1);
}


.rr-reviews.rr-js.rr-visible
.rr-marker::before {
    transform:
        skewX(-4deg)
        scaleX(1);
}


.rr-reviews.rr-js.rr-visible
.rr-marker::after {
    transform:
        skewX(8deg)
        scaleX(1);
}


/* ==========================================================
   TABLET
========================================================== */

@media(max-width:950px) {

    .rr-head {
        grid-template-columns:1fr;

        gap:26px;
    }


    .rr-head-right {
        max-width:680px;

        margin-left:0;
    }


    .rr-context {
        grid-template-columns:1fr;
    }


    .rr-context-item {
        border-right:0;

        border-bottom:
            1px solid
            #e5e5df;
    }


    .rr-context-item:last-child {
        border-bottom:0;
    }

}


/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:700px) {

    .rr-inner {
        padding:
            70px
            18px
            75px;
    }


    .rr-title {
        font-size:38px;

        line-height:1.06;
    }


    .rr-trustindex {
        padding:
            28px
            20px;
    }


    .rr-bottom {
        grid-template-columns:1fr;
    }


    .rr-bottom-right {
        justify-content:flex-start;

        padding:
            20px
            24px;
    }

}


/* ==========================================================
   SMALL MOBILE
========================================================== */

@media(max-width:480px) {

    .rr-title {
        font-size:34px;
    }


    .rr-marker {
        white-space:normal;

        font-size:1em;

        padding:
            .02em
            .10em
            .07em;
    }


    .rr-marker::before {
        top:6%;
    }


    .rr-bottom-left {
        align-items:flex-start;

        padding:
            22px
            20px;
    }


    .rr-btn {
        width:100%;
    }


    .rr-bottom-right {
        padding:
            18px
            20px
            22px;
    }

}


/* ==========================================================
   ELEMENTOR EDITOR
========================================================== */

.elementor-editor-active
.rr-reviews
.rr-kicker,

.elementor-editor-active
.rr-reviews
.rr-title,

.elementor-editor-active
.rr-reviews
.rr-head-right,

.elementor-editor-active
.rr-reviews
.rr-trustindex,

.elementor-editor-active
.rr-reviews
.rr-context,

.elementor-editor-active
.rr-reviews
.rr-bottom {
    opacity:1 !important;

    transform:none !important;
}


.elementor-editor-active
.rr-marker::before {
    transform:
        skewX(-4deg)
        scaleX(1) !important;
}


.elementor-editor-active
.rr-marker::after {
    transform:
        skewX(8deg)
        scaleX(1) !important;
}


/* ==========================================================
   REDUCED MOTION
========================================================== */

@media(prefers-reduced-motion:reduce) {

    .rr-marker::before {
        transform:
            skewX(-4deg)
            scaleX(1) !important;
    }


    .rr-marker::after {
        transform:
            skewX(8deg)
            scaleX(1) !important;
    }

}

/* RUFFUS_ICON_NORMALIZATION_START */

/* ==========================================================
   RUFFUS – ELEMENTOR ICON NORMALISIERUNG
   Elementor kann Icons als <i> oder <svg> ausgeben.
========================================================== */


/* ==========================================================
   LEISTUNGEN
========================================================== */

.rs-icon {
    overflow: hidden !important;
    line-height: 1 !important;
}

.rs-icon > i,
.rs-icon > svg {
    display: block !important;

    width: 20px !important;
    height: 20px !important;

    min-width: 20px !important;
    min-height: 20px !important;

    max-width: 20px !important;
    max-height: 20px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 20px !important;

    font-size: 20px !important;
    line-height: 1 !important;

    color: #FEEE02 !important;
    fill: currentColor !important;

    object-fit: contain !important;

    transform: none !important;
}

.rs-icon > i::before {
    display: block !important;

    width: auto !important;
    height: auto !important;

    margin: 0 !important;

    font-size: inherit !important;
    line-height: 1 !important;
}


/* ==========================================================
   ABLAUF – HAUPTICONS
========================================================== */

.rp-process-icon {
    overflow: hidden !important;
    line-height: 1 !important;
}

.rp-process-icon > i,
.rp-process-icon > svg {
    display: block !important;

    width: 22px !important;
    height: 22px !important;

    min-width: 22px !important;
    min-height: 22px !important;

    max-width: 22px !important;
    max-height: 22px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 22px !important;

    font-size: 22px !important;
    line-height: 1 !important;

    color: #090909 !important;
    fill: currentColor !important;

    object-fit: contain !important;

    transform: none !important;
}

.rp-process-icon > i::before {
    display: block !important;

    margin: 0 !important;

    font-size: inherit !important;
    line-height: 1 !important;
}


/* Weiße Kästen behalten ebenfalls schwarze Icons */

.rp-process-step:nth-child(even)
.rp-process-icon > i,

.rp-process-step:nth-child(even)
.rp-process-icon > svg {
    color: #090909 !important;
    fill: currentColor !important;
}


/* ==========================================================
   ABLAUF – INFOBOX ICON
========================================================== */

.rp-process-note-icon {
    overflow: hidden !important;
    line-height: 1 !important;
}

.rp-process-note-icon > i,
.rp-process-note-icon > svg {
    display: block !important;

    width: 18px !important;
    height: 18px !important;

    min-width: 18px !important;
    min-height: 18px !important;

    max-width: 18px !important;
    max-height: 18px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 18px !important;

    font-size: 18px !important;
    line-height: 1 !important;

    color: #FEEE02 !important;
    fill: currentColor !important;

    object-fit: contain !important;

    transform: none !important;
}


/* ==========================================================
   BEWERTUNGEN – VERTRAUENSPUNKTE
========================================================== */

.rr-context-icon {
    overflow: hidden !important;
    line-height: 1 !important;
}

.rr-context-icon > i,
.rr-context-icon > svg {
    display: block !important;

    width: 17px !important;
    height: 17px !important;

    min-width: 17px !important;
    min-height: 17px !important;

    max-width: 17px !important;
    max-height: 17px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 17px !important;

    font-size: 17px !important;
    line-height: 1 !important;

    color: #090909 !important;
    fill: currentColor !important;

    object-fit: contain !important;

    transform: none !important;
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 560px) {

    .rs-icon > i,
    .rs-icon > svg {
        width: 19px !important;
        height: 19px !important;

        min-width: 19px !important;
        min-height: 19px !important;

        max-width: 19px !important;
        max-height: 19px !important;

        flex-basis: 19px !important;

        font-size: 19px !important;
    }


    .rp-process-icon > i,
    .rp-process-icon > svg {
        width: 19px !important;
        height: 19px !important;

        min-width: 19px !important;
        min-height: 19px !important;

        max-width: 19px !important;
        max-height: 19px !important;

        flex-basis: 19px !important;

        font-size: 19px !important;
    }

}

/* RUFFUS_ICON_NORMALIZATION_END */
