/* ==========================================
   KONTAKT
========================================== */

.contact-header{
    width:100%;
    margin:0;
    padding:54px 0 44px;
    background:var(--background);
}

.contact-header-content{
    width:min(1500px,92%);
    margin:0 auto;
}

.contact-kicker{
    margin:0 0 10px;
    display:flex;
    align-items:center;
    gap:9px;
    color:#aebbc8;
    font-size:12px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:0;
    text-transform:uppercase;
}

.contact-kicker i{
    color:var(--blue);
    font-size:16px;
}

.contact-header h1{
    max-width:900px;
    margin:0;
    font-size:58px;
    line-height:1;
    letter-spacing:0;
}

.contact-intro{
    max-width:830px;
    margin:13px 0 0;
    color:#aebbc8;
    font-size:17px;
    line-height:1.65;
}

/* ==========================================
   LAYOUT
========================================== */

.contact-wrapper{
    width:min(1600px,92%);
    margin:0 auto 82px;
    display:grid;
    grid-template-columns:minmax(350px,440px) minmax(0,1fr);
    gap:46px;
    align-items:start;
}

.contact-info{
    display:flex;
    flex-direction:column;
    gap:16px;
}

/* ==========================================
   KONTAKTWEGE
========================================== */

.contact-box{
    min-width:0;
    padding:22px;
    display:flex;
    align-items:flex-start;
    gap:18px;
    border:2px solid rgba(0,157,255,.52);
    border-radius:8px;
    background:#111822;
    transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.contact-box:hover,
.contact-box:focus-within{
    border-color:var(--red);
    outline:2px solid rgba(215,25,32,.8);
    outline-offset:-2px;
    box-shadow:
        0 0 0 2px rgba(215,25,32,.14),
        0 22px 48px rgba(215,25,32,.15);
    transform:translateY(-3px);
}

.contact-icon{
    width:50px;
    height:50px;
    min-width:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(0,157,255,.34);
    border-radius:6px;
    background:rgba(0,157,255,.08);
    color:var(--blue);
    font-size:21px;
}

.emergency-box .contact-icon{
    border-color:rgba(215,25,32,.42);
    background:rgba(215,25,32,.1);
    color:#f1474d;
}

.contact-box > div:last-child{
    min-width:0;
}

.contact-box h2{
    margin:0 0 8px;
    font-size:27px;
    line-height:1.1;
    letter-spacing:0;
}

.contact-box p{
    margin:0 0 11px;
    color:#aeb9c6;
    font-size:15px;
    line-height:1.6;
}

.contact-box a{
    color:var(--blue);
    font-weight:700;
    line-height:1.5;
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:color .25s ease;
}

.contact-box a:hover,
.contact-box a:focus-visible{
    color:#ffffff;
    outline:none;
}

/* ==========================================
   HINWEIS
========================================== */

.notice-box{
    padding:21px 22px;
    border:1px solid rgba(0,157,255,.4);
    border-left:3px solid var(--blue);
    border-radius:8px;
    background:rgba(0,157,255,.045);
}

.notice-box h3{
    margin:0 0 11px;
    display:flex;
    align-items:center;
    gap:9px;
    font-size:24px;
    line-height:1.2;
    letter-spacing:0;
}

.notice-box h3 i{
    color:var(--blue);
}

.notice-box p{
    margin:0;
    color:#cbd4df;
    line-height:1.7;
}

.notice-box strong{
    color:#ffffff;
}

/* ==========================================
   FORMULAR
========================================== */

.contact-form-box{
    min-width:0;
    padding:30px;
    border:2px solid rgba(0,157,255,.52);
    border-radius:8px;
    background:#111822;
    box-shadow:0 20px 42px rgba(0,0,0,.3);
    transition:border-color .25s ease, box-shadow .25s ease;
}

.contact-form-box:focus-within{
    border-color:rgba(215,25,32,.78);
    box-shadow:0 24px 54px rgba(215,25,32,.12);
}

.contact-form-box h2{
    margin:0 0 12px;
    font-size:42px;
    line-height:1;
    letter-spacing:0;
}

.contact-form-box > p{
    max-width:760px;
    margin:0 0 27px;
    color:#aeb9c6;
    line-height:1.7;
}

.contact-form{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.form-group{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:9px;
}

.form-group label{
    color:#ffffff;
    font-size:14px;
    font-weight:700;
}

.form-group input,
.form-group select,
.form-group textarea{
    width:100%;
    min-height:50px;
    padding:14px 16px;
    border:1px solid rgba(0,157,255,.3);
    border-radius:6px;
    outline:none;
    background:#0b111a;
    color:#ffffff;
    font-family:"Montserrat",sans-serif;
    font-size:16px;
    transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}

.form-group input:hover,
.form-group select:hover,
.form-group textarea:hover{
    border-color:rgba(0,157,255,.62);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
    border-color:var(--blue);
    background:#0a121d;
    box-shadow:0 0 0 3px rgba(0,157,255,.13);
}

.form-group textarea{
    min-height:180px;
    resize:vertical;
}

.form-group select{
    cursor:pointer;
}

.form-group option{
    background:#0b111a;
    color:#ffffff;
}

.hp-field{
    position:absolute;
    left:-10000px;
    width:1px;
    height:1px;
    overflow:hidden;
}

/* ==========================================
   DATENSCHUTZ UND ABSENDEN
========================================== */

.privacy-check{
    padding:16px;
    display:flex;
    align-items:flex-start;
    gap:13px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:6px;
    background:rgba(255,255,255,.025);
    color:#cbd4df;
    line-height:1.65;
    cursor:pointer;
}

.privacy-check:focus-within{
    border-color:rgba(0,157,255,.55);
}

.privacy-check input{
    width:18px;
    height:18px;
    min-width:18px;
    margin-top:4px;
    accent-color:var(--blue);
}

.privacy-check a{
    color:var(--blue);
    font-weight:700;
    text-decoration:none;
}

.privacy-check a:hover,
.privacy-check a:focus-visible{
    color:#ffffff;
    outline:none;
}

.send-button{
    min-height:48px;
    padding:10px 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border:1px solid rgba(0,157,255,.48);
    border-radius:6px;
    background:rgba(0,157,255,.09);
    color:#e8f7ff;
    font-family:"Montserrat",sans-serif;
    font-size:14px;
    font-weight:700;
    line-height:1.3;
    cursor:pointer;
    touch-action:manipulation;
    transition:background .25s ease, border-color .25s ease, color .25s ease;
}

.send-button:hover,
.send-button:focus-visible{
    border-color:var(--red);
    outline:2px solid rgba(215,25,32,.72);
    outline-offset:-2px;
    background:rgba(215,25,32,.09);
    color:#ffffff;
}

.send-button i{
    transition:transform .25s ease;
}

.send-button:hover i,
.send-button:focus-visible i{
    transform:translateX(3px);
}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:1100px){
    .contact-wrapper{
        width:min(92%,850px);
        grid-template-columns:1fr;
        gap:34px;
    }

    .contact-info{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .notice-box{
        grid-column:1 / -1;
    }
}

@media(max-width:700px){
    .contact-header{
        padding:38px 0 32px;
    }

    .contact-header-content,
    .contact-wrapper{
        width:calc(100% - 24px);
    }

    .contact-header h1{
        font-size:42px;
    }

    .contact-intro{
        font-size:15px;
        line-height:1.6;
    }

    .contact-wrapper{
        margin-bottom:60px;
    }

    .contact-info,
    .form-grid{
        grid-template-columns:1fr;
    }

    .notice-box{
        grid-column:auto;
    }

    .contact-form-box{
        padding:22px;
    }

    .contact-form-box h2{
        font-size:34px;
    }
}

@media(max-width:420px){
    .contact-header h1{
        font-size:36px;
    }

    .contact-box{
        padding:19px;
        gap:15px;
    }

    .contact-icon{
        width:46px;
        height:46px;
        min-width:46px;
    }

    .contact-box h2{
        font-size:24px;
    }

    .contact-form-box{
        padding:19px;
    }

    .contact-form-box h2{
        font-size:30px;
    }

    .notice-box h3{
        font-size:22px;
    }
}

@media(hover:none){
    .contact-box:hover{
        transform:none;
    }
}
