.repair-page {
    --repair-brown: rgb(56, 43, 40);
    --repair-brown-light: rgb(91, 72, 67);
    --repair-gold: rgb(197, 131, 37);
    --repair-gold-dark: rgb(163, 105, 26);
    --repair-cream: #f7f3ed;
    --repair-text: #302b29;

    overflow: hidden;
    background: white;
    color: var(--repair-text);
}

.repair-page * {
    box-sizing: border-box;
}

.repair-container {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.repair-page h2,
.repair-page h3,
.repair-page p {
    font-family: Rubik, Arial, sans-serif;
}

.repair-page h2 {
    margin: 0 0 24px;
    color: var(--repair-brown);
    font-size: clamp(1.9rem, 4vw, 3rem);
    line-height: 1.12;
}

.repair-page h3 {
    color: var(--repair-brown);
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    line-height: 1.25;
}

.repair-page p {
    margin: 0 0 18px;
    color: #4d4643;
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    line-height: 1.75;
    text-align: left;
}

.repair-kicker {
    display: block;

    margin-bottom: 12px;

    color: var(--repair-gold);
    font-size: .83rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.repair-kicker-light {
    color: #e6b76f;
}

html {
    scroll-behavior: smooth;
}

#offer-form-div {
    scroll-margin-top: 10vh;
}


/* =========================================================
   INTRO
========================================================= */

.repair-intro {
    position: relative;
    padding: clamp(60px, 8vw, 110px) 0;
    background:
        linear-gradient(
            120deg,
            #ffffff 0%,
            #ffffff 60%,
            #f7f3ed 60%,
            #f7f3ed 100%
        );
}

.repair-intro-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(40px, 6vw, 80px);
    align-items: center;
}

.repair-intro-content {
    position: relative;
    z-index: 2;
}

.repair-intro-content h2 {
    max-width: 650px;
    font-size: clamp(2.1rem, 4.5vw, 3.7rem);
}

.repair-lead {
    color: var(--repair-brown) !important;
    font-size: clamp(1.08rem, 1.5vw, 1.25rem) !important;
    font-weight: 700;
}

.repair-intro-image {
    position: relative;
}

.repair-intro-image::before {
    content: "";

    position: absolute;
    top: -18px;
    right: -18px;

    width: 70%;
    height: 70%;

    border-top: 4px solid var(--repair-gold);
    border-right: 4px solid var(--repair-gold);
}

.repair-intro-image img {
    position: relative;

    display: block;

    width: 100%;
    height: clamp(350px, 40vw, 520px);

    object-fit: cover;

    box-shadow: 0 18px 45px rgba(56, 43, 40, .18);
}

.repair-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;

    margin-top: 32px;
}


/* =========================================================
   BUTTONS
========================================================= */

.repair-primary-btn,
.repair-secondary-btn,
.repair-light-btn,
.repair-outline-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 50px;

    border-radius: 4px;

    padding: 13px 24px;

    font-family: Rubik, Arial, sans-serif;
    font-size: 1rem;
    font-weight: 700;

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

.repair-primary-btn {
    background: var(--repair-gold);
    color: white;

    box-shadow: 0 7px 20px rgba(197, 131, 37, .25);
}

.repair-primary-btn:hover {
    background: var(--repair-gold-dark);
    transform: translateY(-2px);
}

.repair-secondary-btn {
    border: 2px solid var(--repair-brown);

    color: var(--repair-brown);
    background: transparent;
}

.repair-secondary-btn:hover {
    background: var(--repair-brown);
    color: white;
}


/* =========================================================
   QUICK HELP
========================================================= */

.repair-quick {
    position: relative;
    z-index: 3;

    padding: 0 0 clamp(70px, 8vw, 110px);
}

.repair-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    border: 1px solid #e3dcd5;

    background: white;

    box-shadow: 0 15px 45px rgba(56, 43, 40, .08);
}

.repair-quick-card {
    position: relative;

    min-height: 270px;

    border-right: 1px solid #e3dcd5;

    padding: 38px 32px;
}

.repair-quick-card:last-child {
    border-right: none;
}

.repair-card-number {
    display: block;

    margin-bottom: 28px;

    color: var(--repair-gold);
    font-size: .85rem;
    font-weight: 700;
}

.repair-quick-card h3 {
    margin-bottom: 15px;
}

.repair-quick-card p {
    margin: 0;
    font-size: 1rem;
}

.repair-quick-card-dark {
    background: var(--repair-brown);
}

.repair-quick-card-dark h3,
.repair-quick-card-dark p {
    color: white;
}


/* =========================================================
   MAIN SECTIONS
========================================================= */

.repair-section {
    padding: clamp(70px, 9vw, 125px) 0;
    background: white;
}

.repair-section-alt {
    background: var(--repair-cream);
}

.repair-section-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(45px, 7vw, 90px);
    align-items: center;
}

.repair-section-alt .repair-section-image {
    order: 2;
}

.repair-section-alt .repair-section-content {
    order: 1;
}

.repair-section-image {
    position: relative;
}

.repair-section-image::after {
    content: "";

    position: absolute;
    left: -12px;
    bottom: -12px;

    width: 45%;
    height: 45%;

    border-left: 4px solid var(--repair-gold);
    border-bottom: 4px solid var(--repair-gold);

    pointer-events: none;
}

.repair-section-image img {
    display: block;

    width: 100%;
    height: clamp(360px, 40vw, 520px);

    object-fit: cover;
}

.repair-heading {
    display: flex;
    gap: 20px;
    align-items: flex-start;

    margin-bottom: 12px;
}

.repair-heading h2 {
    margin-bottom: 18px;
}

.repair-number {
    flex-shrink: 0;

    color: var(--repair-gold);
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 700;
    line-height: .9;

    opacity: .28;
}


/* =========================================================
   TAGS
========================================================= */

.repair-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;

    margin-top: 28px;
}

.repair-tags span {
    border: 1px solid rgba(197, 131, 37, .55);
    border-radius: 50px;

    padding: 7px 13px;

    color: var(--repair-brown);
    background: rgba(197, 131, 37, .07);

    font-size: .82rem;
    font-weight: 700;
}


/* =========================================================
   INFO NOTE
========================================================= */

.repair-note {
    margin: 28px 0;

    border-left: 4px solid var(--repair-gold);

    background: white;

    padding: 20px 24px;

    color: #4d4643;

    font-family: Rubik, Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.65;

    box-shadow: 0 8px 25px rgba(56, 43, 40, .07);
}


/* =========================================================
   DACHFENSTER FEATURE
========================================================= */

.repair-window {
    position: relative;

    background: var(--repair-brown);

    overflow: hidden;
}

.repair-window::before {
    content: "";

    position: absolute;
    width: 420px;
    height: 420px;

    left: -220px;
    bottom: -230px;

    border: 70px solid rgba(197, 131, 37, .08);
    border-radius: 50%;
}

.repair-window-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 570px;
}

.repair-window-content {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    padding: clamp(60px, 7vw, 90px) clamp(20px, 5vw, 70px) clamp(60px, 7vw, 90px) 0;
}

.repair-window-content h2 {
    color: white;
}

.repair-window-content p {
    color: rgba(255, 255, 255, .83);
}

.repair-window-image img {
    display: block;

    width: 50vw;
    height: 100%;

    object-fit: cover;
}

.repair-light-btn {
    margin-top: 12px;

    background: var(--repair-gold);
    color: white;
}

.repair-light-btn:hover {
    background: #dda54f;
    transform: translateY(-2px);
}


/* =========================================================
   ROOF TYPES
========================================================= */

.repair-types {
    padding: clamp(80px, 10vw, 140px) 0;

    background:
        linear-gradient(
            180deg,
            white 0%,
            #faf8f5 100%
        );
}

.repair-types-heading {
    max-width: 760px;

    margin: 0 auto clamp(45px, 6vw, 70px);

    text-align: center;
}

.repair-types-heading p {
    text-align: center;
}

.repair-types-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.repair-type-card {
    position: relative;

    min-height: 230px;

    border: 1px solid #e5ded7;

    background: white;

    padding: 34px 30px;

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

.repair-type-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 55px;
    height: 4px;

    background: var(--repair-gold);

    transition: width .25s ease;
}

.repair-type-card:hover {
    transform: translateY(-5px);

    border-color: rgba(197, 131, 37, .5);

    box-shadow: 0 15px 35px rgba(56, 43, 40, .1);
}

.repair-type-card:hover::before {
    width: 100%;
}

.repair-type-card h3 {
    margin: 14px 0 15px;
}

.repair-type-card p {
    margin: 0;

    font-size: 1rem;
}


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

.repair-final {
    position: relative;

    background:
        linear-gradient(
            135deg,
            rgb(56, 43, 40),
            rgb(80, 59, 53)
        );

    padding: clamp(70px, 9vw, 120px) 0;

    overflow: hidden;
}

.repair-final::after {
    content: "";

    position: absolute;

    width: 450px;
    height: 450px;

    right: -180px;
    top: -260px;

    border: 80px solid rgba(197, 131, 37, .09);
    border-radius: 50%;
}

.repair-final-content {
    position: relative;
    z-index: 2;

    max-width: 850px;

    margin: auto;

    text-align: center;
}

.repair-final h2 {
    color: white;
}

.repair-final p {
    max-width: 700px;

    margin: 0 auto 30px;

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

    text-align: center;
}

.repair-final-buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.repair-outline-btn {
    border: 2px solid rgba(255, 255, 255, .7);

    color: white;
}

.repair-outline-btn:hover {
    background: white;
    color: var(--repair-brown);
}


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

@media screen and (max-width: 900px) {

    .repair-intro-grid,
    .repair-section-grid {
        grid-template-columns: 1fr;
    }

    .repair-intro {
        background: white;
    }

    .repair-intro-image {
        margin-top: 15px;
    }

    .repair-quick-grid {
        grid-template-columns: 1fr;
    }

    .repair-quick-card {
        min-height: auto;

        border-right: none;
        border-bottom: 1px solid #e3dcd5;
    }

    .repair-quick-card:last-child {
        border-bottom: none;
    }

    .repair-section-alt .repair-section-image,
    .repair-section-alt .repair-section-content {
        order: initial;
    }

    .repair-section-image {
        order: 2 !important;
    }

    .repair-section-content {
        order: 1 !important;
    }

    .repair-window-grid {
        grid-template-columns: 1fr;
    }

    .repair-window-content {
        padding: 65px 0;
    }

    .repair-window-image {
        height: 420px;
    }

    .repair-window-image img {
        width: 100%;
        height: 100%;
    }

    .repair-types-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}


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

@media screen and (max-width: 600px) {

    .repair-container {
        width: calc(100% - 30px);
    }

    .repair-intro {
        padding: 50px 0 70px;
    }

    .repair-intro-content h2 {
        font-size: 2.25rem;
    }

    .repair-intro-image img,
    .repair-section-image img {
        height: 300px;
    }

    .repair-intro-image::before {
        top: -9px;
        right: -9px;

        border-width: 3px;
    }

    .repair-section-image::after {
        left: -7px;
        bottom: -7px;

        border-width: 3px;
    }

    .repair-heading {
        gap: 12px;
    }

    .repair-number {
        font-size: 2.7rem;
    }

    .repair-types-grid {
        grid-template-columns: 1fr;
    }

    .repair-type-card {
        min-height: auto;
    }

    .repair-intro-actions {
        flex-direction: column;
    }

    .repair-primary-btn,
    .repair-secondary-btn {
        width: 100%;
    }

}