html{scroll-behavior:smooth}
.hero{

height:100vh;

position:relative;

display:flex;

align-items:center;

justify-content:center;

}

.hero-video{

position:absolute;

top:0;

left:0;

width:100%;

height:100%;

object-fit:cover;

z-index:1;

}

.hero-overlay{

position:absolute;

inset:0;

background:rgba(203, 229, 239, 0.45);

z-index:2;

}

.hero-content{

z-index:3;

color:rgb(6, 6, 6);

text-align:center;

}

.hero h1{

font-weight:800;

}

.hero p{

max-width:850px;

margin:auto;

font-size:1.2rem;

}

.hero .btn{

padding:15px 35px;

}body{font-family:Arial,sans-serif;background:#f8fafc}

/* ===========================
   FOOTER
=========================== */

.footer{

background:#111827;

color:white;

padding:90px 0 30px;

}

.footer a{

color:#d1d5db;

text-decoration:none;

transition:.3s;

}

.footer a:hover{

color:white;

}

.footer h5{

font-weight:700;

margin-bottom:20px;

}

.footer ul{

list-style:none;

padding:0;

}

.footer ul li{

margin-bottom:12px;

}

.footer-cta{

background:linear-gradient(135deg,#0d6efd,#00c2a8);

padding:50px;

border-radius:30px;

margin-top:-170px;

box-shadow:0 30px 60px rgba(13,110,253,.25);

}

.footer-cta h2{

font-weight:800;

color:white;

}

.footer-cta p{

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

margin:15px 0 0;

}

.footer-bottom{

padding-top:25px;

font-size:14px;

color:#9ca3af;

}

.footer-bottom span{

margin:0 10px;

}

.footer hr{

border-color:rgba(255,255,255,.1);

margin:40px 0 20px;

}

/* ===========================
   ABOUT
=========================== */

.about-section{

    padding:120px 0;

    background:#fff;

}

.about-text{

    max-width:850px;

}

.section-subtitle{

    display:inline-block;

    padding:10px 20px;

    background:#eef5ff;

    color:#0d6efd;

    border-radius:50px;

    font-weight:600;

}

.about-card{

    background:#fff;

    border-radius:24px;

    padding:35px 25px;

    height:100%;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    transition:.35s;

    border:1px solid rgba(13,110,253,.08);

}

.about-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 55px rgba(13,110,253,.18);

}

.about-card i{

    font-size:45px;

    color:#0d6efd;

    margin-bottom:20px;

}

.about-card h5{

    font-weight:700;

    margin-bottom:12px;

}

.about-card p{

    color:#6c757d;

    margin:0;

    font-size:.95rem;

}

.about-image img{

    width:100%;

    max-width:1200px;

    border-radius:30px;

}

.about-short{
    max-width:850px;
    margin:80px auto 0;
    padding:50px 30px;
    background:#f8fafc;
    border-radius:30px;
}

.about-short h3{
    font-size:2rem;
}

.about-short p{
    max-width:700px;
    font-size:1.05rem;
    line-height:1.8;
}

/* ===========================
CONTACT / ANGEBOT
=========================== */

.contact-section{
    padding:120px 0;
    background:#f8fafc;
}

.contact-intro{
    max-width:750px;
}

.contact-card{
    background:#fff;
    padding:50px;
    border-radius:30px;
    box-shadow:0 20px 60px rgba(0,0,0,.08);
}

.contact-card .form-label{
    font-weight:600;
    margin-bottom:8px;
}

.contact-card .form-control,
.contact-card .form-select{
    min-height:52px;
    border-radius:12px;
    border:1px solid #dee2e6;
    padding:12px 15px;
}

.contact-card textarea.form-control{
    min-height:150px;
    resize:vertical;
}

.contact-card .form-control:focus,
.contact-card .form-select:focus{
    border-color:#0d6efd;
    box-shadow:0 0 0 .2rem rgba(13,110,253,.12);
}

.contact-card .form-check{
    font-size:.95rem;
    color:#6c757d;
}

.contact-card .form-check-input{
    margin-top:.3rem;
}

.contact-card .form-check a{
    color:#0d6efd;
    text-decoration:none;
    font-weight:600;
}

.contact-card .form-check a:hover{
    text-decoration:underline;
}

.form-message{
    min-height:25px;
    margin-top:15px;
    font-weight:600;
}

/* ===========================
   REINHAND KOSTENRECHNER
=========================== */

.calculator-section{
    padding:120px 0;
    background:#f8fafc;
}

.calculator-intro{
    max-width:750px;
}

.calculator-card{
    background:#fff;
    padding:45px;
    border-radius:30px;
    box-shadow:0 20px 60px rgba(0,0,0,.07);
}

.calculator-step{
    display:flex;
    align-items:flex-start;
    gap:15px;
    margin-bottom:25px;
}

.calculator-step h5{
    margin:0 0 5px;
    font-weight:700;
}

.calculator-step p{
    margin:0;
    color:#6c757d;
}

.step-number{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:45px;
    height:45px;
    border-radius:50%;
    background:#eef5ff;
    color:#0d6efd;
    font-size:.8rem;
    font-weight:800;
}

.calculator-divider{
    height:1px;
    background:#e9ecef;
    margin:40px 0;
}

.calculator-card .form-label{
    font-weight:600;
}

.calculator-card .form-control,
.calculator-card .form-select{
    min-height:52px;
    border-radius:12px;
}

.frequency-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}

.frequency-option{
    cursor:pointer;
}

.frequency-option input{
    display:none;
}

.frequency-option span{
    display:block;
    padding:15px;
    text-align:center;
    border:1px solid #dee2e6;
    border-radius:12px;
    transition:.25s;
}

.frequency-option input:checked + span{
    border-color:#0d6efd;
    background:#eef5ff;
    color:#0d6efd;
    font-weight:700;
}

.material-choice{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
}

.material-option{
    display:flex;
    align-items:center;
    gap:12px;
    padding:18px;
    border:1px solid #dee2e6;
    border-radius:15px;
    cursor:pointer;
    transition:.25s;
}

.material-option input{
    display:none;
}

.material-option i{
    font-size:25px;
    color:#0d6efd;
}

.material-option small{
    display:block;
    color:#6c757d;
    margin-top:3px;
}

.material-option:has(input:checked){
    border-color:#0d6efd;
    background:#eef5ff;
}

.extras-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.extra-option{
    display:flex;
    align-items:center;
    gap:10px;
    padding:15px;
    border:1px solid #dee2e6;
    border-radius:12px;
    cursor:pointer;
    transition:.25s;
}

.extra-option input{
    accent-color:#0d6efd;
}

.extra-option i{
    color:#0d6efd;
    font-size:20px;
}

.extra-option:has(input:checked){
    border-color:#0d6efd;
    background:#eef5ff;
}


/* RESULT */

.calculator-result{
    position:sticky;
    top:110px;
    background:#111827;
    color:#fff;
    padding:45px;
    border-radius:30px;
    box-shadow:0 25px 70px rgba(0,0,0,.15);
}

.result-icon{
    width:55px;
    height:55px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#0d6efd;
    border-radius:15px;
    font-size:24px;
    margin-bottom:25px;
}

.result-label{
    color:#9ca3af;
    font-size:.9rem;
}

.calculator-result h3{
    font-weight:700;
    margin:10px 0 20px;
}

.result-price{
    display:flex;
    align-items:baseline;
    gap:8px;
    margin-bottom:20px;
}

.result-price span{
    font-size:3.5rem;
    font-weight:800;
    line-height:1;
}

.result-price small{
    color:#9ca3af;
}

.result-note{
    color:#9ca3af;
    font-size:.9rem;
    line-height:1.6;
}

.result-summary{
    border-top:1px solid rgba(255,255,255,.12);
    border-bottom:1px solid rgba(255,255,255,.12);
    margin:30px 0;
}

.result-summary div{
    display:flex;
    justify-content:space-between;
    padding:14px 0;
}

.result-summary span{
    color:#9ca3af;
}

.result-summary strong{
    color:#fff;
}

.result-trust{
    text-align:center;
    color:#9ca3af;
    font-size:.85rem;
    margin:20px 0 0;
}

.result-trust i{
    color:#0d6efd;
    margin-right:5px;
}


@media(max-width:991px){

    .calculator-result{
        position:static;
    }

}


@media(max-width:576px){

    .calculator-card,
    .calculator-result{
        padding:30px 20px;
    }

    .frequency-grid,
    .material-choice,
    .extras-grid{
        grid-template-columns:1fr;
    }

    .result-price span{
        font-size:2.8rem;
    }

}

.calculator-submit{
    margin-top:40px;
    padding-top:30px;
    border-top:1px solid #e9ecef;
    text-align:center;
}

.calculator-result-hidden{
    visibility:hidden;
    opacity:0;
    transform:translateY(20px);
}

.calculator-result{
    transition:
        opacity .4s ease,
        transform .4s ease;
}

.calculator-result:not(.calculator-result-hidden){
    visibility:visible;
    opacity:1;
    transform:translateY(0);
}

/* ===========================
   CALCULATOR VERTICAL LAYOUT
=========================== */

.calculator-wrapper{
    max-width:900px;
    margin:0 auto;
}

.calculator-form-wrapper{
    width:100%;
}

.calculator-result{
    width:100%;
    margin:60px auto 0;
    background:#111827;
    color:#fff;
    padding:55px;
    border-radius:30px;
    box-shadow:0 25px 70px rgba(0,0,0,.15);
    opacity:1;
    transform:translateY(0);
}

.calculator-result-hidden{
    display:none;
}

.calculator-result-visible{
    display:block;
    animation:calculatorResultIn .6s ease;
}

@keyframes calculatorResultIn{

    from{
        opacity:0;
        transform:translateY(60px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.calculator-submit{
    margin-top:40px;
    padding-top:30px;
    border-top:1px solid #e9ecef;
    text-align:center;
}

@media(max-width:576px){

    .calculator-result{
        padding:30px 20px;
    }

}

.service-card,.about-card{background:#fff;border-radius:20px;padding:25px;box-shadow:0 10px 30px rgba(0,0,0,.08);height:100%}
