/* =========================================================
   KINETIX STUDIO 2.0
   KONTAKT.CSS
   ========================================================= */


/* =========================================================
   CONTACT HERO
========================================================= */

.contact-hero {
    position: relative;

    width: min(1400px, calc(100% - 10vw));
    min-height: 78vh;

    margin: 0 auto;

    display: flex;
    align-items: center;

    padding: 190px 0 120px;

    border-bottom: 1px solid rgba(255,255,255,.07);

    overflow: hidden;
}

.contact-hero::before {
    content: "";

    position: absolute;

    width: 650px;
    height: 650px;

    right: -250px;
    top: 60px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255,95,31,.14),
            transparent 68%
        );

    filter: blur(15px);

    pointer-events: none;
}

.contact-hero-inner {
    position: relative;

    z-index: 2;

    max-width: 1050px;
}

.contact-hero h1 {
    margin: 30px 0 35px;

    font-family: var(--title);

    font-size:
        clamp(
            4rem,
            10vw,
            10rem
        );

    line-height: .78;

    letter-spacing: -7px;
}

.contact-hero h1 span {
    color: var(--orange);
}

.contact-hero p {
    max-width: 650px;

    color: var(--muted);

    font-size:
        clamp(
            .95rem,
            1.4vw,
            1.15rem
        );

    line-height: 1.75;
}

.contact-hero-number {
    position: absolute;

    right: -10px;
    bottom: 30px;

    color: rgba(255,255,255,.025);

    font-family: var(--title);

    font-size:
        clamp(
            12rem,
            28vw,
            28rem
        );

    line-height: .7;

    pointer-events: none;
}


/* =========================================================
   CONTACT MAIN
========================================================= */

.contact-main {
    width:
        min(
            1400px,
            calc(100% - 10vw)
        );

    margin: 0 auto;

    padding: 150px 0;

    display: grid;

    grid-template-columns:
        .85fr
        1.15fr;

    gap: 110px;

    align-items: start;
}


/* =========================================================
   CONTACT INFO
========================================================= */

.contact-info {
    position: sticky;

    top: 130px;
}

.contact-section-label {
    display: flex;

    gap: 18px;

    margin-bottom: 55px;

    color: var(--dim);

    font-size: .59rem;

    font-weight: 800;

    letter-spacing: 2px;

    text-transform: uppercase;
}

.contact-section-label span:first-child {
    color: var(--orange);
}

.contact-info h2 {
    margin-bottom: 35px;

    font-family: var(--title);

    font-size:
        clamp(
            3.2rem,
            5.5vw,
            6rem
        );

    line-height: .8;

    letter-spacing: -4px;
}

.contact-info h2 span {
    color: var(--orange);
}

.contact-info > p {
    max-width: 500px;

    margin-top: 18px;

    color: var(--muted);

    font-size: .9rem;

    line-height: 1.8;
}


/* =========================================================
   CONTACT DETAILS
========================================================= */

.contact-details {
    margin-top: 60px;

    border-top:
        1px solid
        var(--line);
}

.contact-detail {
    display: flex;

    flex-direction: column;

    gap: 8px;

    padding: 20px 0;

    border-bottom:
        1px solid
        var(--line);

    transition:
        padding .3s ease;
}

.contact-detail:hover {
    padding-left: 10px;
}

.contact-detail-label {
    color: var(--orange);

    font-size: .55rem;

    font-weight: 800;

    letter-spacing: 1.8px;
}

.contact-detail strong {
    color: #fff;

    font-size: .78rem;

    font-weight: 600;
}


/* =========================================================
   FORM WRAPPER
========================================================= */

.contact-form-wrapper {
    position: relative;

    padding: 45px;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius: 28px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.012)
        );

    box-shadow:
        0 30px 100px
        rgba(0,0,0,.18);
}

.contact-form-heading {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 45px;

    padding-bottom: 25px;

    border-bottom:
        1px solid
        var(--line);
}

.contact-form-heading > span {
    color: var(--orange);

    font-size: .58rem;

    font-weight: 800;

    letter-spacing: 1.8px;
}

.contact-form-heading p {
    max-width: 220px;

    color: var(--muted);

    font-size: .68rem;

    line-height: 1.5;

    text-align: right;
}


/* =========================================================
   FORM
========================================================= */

.kinetix-form {
    display: flex;

    flex-direction: column;

    gap: 25px;
}

.form-group {
    display: flex;

    flex-direction: column;

    gap: 10px;
}

.form-group label {
    color:
        rgba(255,255,255,.55);

    font-size: .55rem;

    font-weight: 800;

    letter-spacing: 1.8px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;

    border:
        1px solid
        rgba(255,255,255,.09);

    border-radius: 12px;

    outline: none;

    background:
        rgba(255,255,255,.025);

    color: #fff;

    font-family: var(--body);

    font-size: .82rem;

    transition:
        border-color .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}

.form-group input,
.form-group select {
    min-height: 54px;

    padding:
        0 16px;
}

.form-group textarea {
    min-height: 170px;

    padding:
        15px 16px;

    resize:
        vertical;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color:
        rgba(255,255,255,.25);
}

.form-group select {
    appearance: none;

    cursor: pointer;

    background-image:
        linear-gradient(
            45deg,
            transparent 50%,
            rgba(255,255,255,.5) 50%
        ),
        linear-gradient(
            135deg,
            rgba(255,255,255,.5) 50%,
            transparent 50%
        );

    background-position:
        calc(100% - 18px) 23px,
        calc(100% - 13px) 23px;

    background-size:
        5px 5px,
        5px 5px;

    background-repeat:
        no-repeat;
}

.form-group select option {
    background:
        #10151b;

    color:
        #fff;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color:
        rgba(255,95,31,.55);

    background:
        rgba(255,95,31,.035);

    box-shadow:
        0 0 0 3px
        rgba(255,95,31,.07);
}


/* =========================================================
   FORM SUBMIT
========================================================= */

.form-submit {
    width: 100%;

    min-height: 60px;

    margin-top: 10px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 15px;

    border:
        1px solid
        var(--orange);

    border-radius: 999px;

    background:
        var(--orange);

    color:
        #fff;

    font-family:
        var(--body);

    font-size:
        .63rem;

    font-weight:
        800;

    letter-spacing:
        1.5px;

    cursor:
        pointer;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background .3s ease;
}

.form-submit span {
    font-size:
        1rem;

    transition:
        transform .3s ease;
}

.form-submit:hover {
    background:
        var(--orange-light);

    transform:
        translateY(-3px);

    box-shadow:
        0 18px 45px
        rgba(255,95,31,.25);
}

.form-submit:hover span {
    transform:
        translate(4px,-3px);
}


/* =========================================================
   CALENDLY / CALL
========================================================= */

.contact-call {
    width:
        min(
            1400px,
            calc(100% - 10vw)
        );

    margin:
        0 auto;

    padding:
        0 0 150px;
}

.contact-call-inner {
    display: grid;

    grid-template-columns:
        1.2fr
        .8fr;

    gap: 80px;

    align-items: center;

    padding:
        80px 70px;

    border:
        1px solid
        rgba(255,95,31,.15);

    border-radius:
        30px;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(255,95,31,.11),
            transparent 35%
        ),
        #10151b;
}

.contact-call h2 {
    margin-top:
        30px;

    font-family:
        var(--title);

    font-size:
        clamp(
            3rem,
            6vw,
            6.5rem
        );

    line-height:
        .8;

    letter-spacing:
        -4px;
}

.contact-call h2 span {
    color:
        var(--orange);
}

.contact-call-right p {
    max-width:
        450px;

    margin-bottom:
        30px;

    color:
        var(--muted);

    font-size:
        .9rem;

    line-height:
        1.75;
}


/* =========================================================
   FAQ
========================================================= */

.contact-faq {
    width:
        min(
            1400px,
            calc(100% - 10vw)
        );

    margin:
        0 auto;

    padding:
        150px 0;

    border-top:
        1px solid
        var(--line);
}

.faq-list {
    border-top:
        1px solid
        var(--line);
}

.faq-list details {
    border-bottom:
        1px solid
        var(--line);
}

.faq-list summary {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 30px;

    padding:
        28px 0;

    list-style:
        none;

    color:
        #fff;

    font-size:
        .78rem;

    font-weight:
        700;

    letter-spacing:
        .8px;

    cursor:
        pointer;
}

.faq-list summary::-webkit-details-marker {
    display: none;
}

.faq-list summary span {
    color:
        var(--orange);

    font-size:
        1.4rem;

    font-weight:
        400;

    transition:
        transform .3s ease;
}

.faq-list details[open]
summary span {
    transform:
        rotate(45deg);
}

.faq-list details p {
    max-width:
        700px;

    padding:
        0 60px
        30px 0;

    color:
        var(--muted);

    font-size:
        .82rem;

    line-height:
        1.8;
}


/* =========================================================
   FINAL CTA
========================================================= */

.contact-final {
    width:
        min(
            1400px,
            calc(100% - 10vw)
        );

    margin:
        0 auto
        150px;
}

.contact-final-inner {
    position:
        relative;

    overflow:
        hidden;

    padding:
        100px 70px;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius:
        32px;

    background:
        radial-gradient(
            circle at 80% 15%,
            rgba(255,95,31,.14),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            #12171d,
            #0b0f14
        );
}

.contact-final-inner::after {
    content:
        "K";

    position:
        absolute;

    right:
        -50px;

    bottom:
        -150px;

    color:
        rgba(255,255,255,.018);

    font-family:
        var(--title);

    font-size:
        28rem;

    line-height:
        .7;

    pointer-events:
        none;
}

.contact-final-inner h2 {
    position:
        relative;

    z-index:
        2;

    margin:
        30px 0
        40px;

    font-family:
        var(--title);

    font-size:
        clamp(
            3.5rem,
            8vw,
            8rem
        );

    line-height:
        .8;

    letter-spacing:
        -5px;
}

.contact-final-inner h2 span {
    color:
        var(--orange);
}

.contact-final-inner .btn-primary {
    position:
        relative;

    z-index:
        2;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

    .contact-hero,
    .contact-main,
    .contact-call,
    .contact-faq,
    .contact-final {
        width:
            calc(100% - 8vw);
    }

    .contact-main {
        grid-template-columns:
            1fr;

        gap:
            80px;
    }

    .contact-info {
        position:
            static;
    }

    .contact-call-inner {
        grid-template-columns:
            1fr;

        gap:
            45px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .contact-hero {
        width:
            calc(100% - 34px);

        min-height:
            72vh;

        padding:
            140px 0
            80px;
    }

    .contact-hero h1 {
        font-size:
            clamp(
                3.3rem,
                15vw,
                5.5rem
            );

        letter-spacing:
            -4px;
    }

    .contact-hero p {
        font-size:
            .9rem;
    }

    .contact-hero-number {
        right:
            -20px;

        bottom:
            20px;

        font-size:
            12rem;
    }


    /* MAIN */

    .contact-main {
        width:
            calc(100% - 34px);

        padding:
            90px 0;

        gap:
            70px;
    }

    .contact-section-label {
        margin-bottom:
            40px;
    }

    .contact-info h2 {
        font-size:
            clamp(
                3rem,
                14vw,
                5rem
            );

        letter-spacing:
            -3px;
    }


    /* FORM */

    .contact-form-wrapper {
        padding:
            25px;

        border-radius:
            22px;
    }

    .contact-form-heading {
        flex-direction:
            column;

        align-items:
            flex-start;

        gap:
            12px;
    }

    .contact-form-heading p {
        text-align:
            left;
    }


    /* CALL */

    .contact-call {
        width:
            calc(100% - 34px);

        padding-bottom:
            90px;
    }

    .contact-call-inner {
        padding:
            60px 25px;

        border-radius:
            22px;
    }

    .contact-call h2 {
        font-size:
            clamp(
                3rem,
                14vw,
                5rem
            );

        letter-spacing:
            -3px;
    }

    .contact-call-right p {
        font-size:
            .88rem;
    }


    /* FAQ */

    .contact-faq {
        width:
            calc(100% - 34px);

        padding:
            90px 0;
    }

    .faq-list summary {
        padding:
            23px 0;

        font-size:
            .68rem;

        line-height:
            1.5;
    }

    .faq-list details p {
        padding:
            0 35px
            25px 0;

        font-size:
            .78rem;
    }


    /* FINAL */

    .contact-final {
        width:
            calc(100% - 34px);

        margin-bottom:
            90px;
    }

    .contact-final-inner {
        padding:
            65px 25px;

        border-radius:
            22px;
    }

    .contact-final-inner h2 {
        font-size:
            clamp(
                3rem,
                14vw,
                5rem
            );

        letter-spacing:
            -3px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 430px) {

    .contact-hero h1 {
        font-size:
            3.2rem;
    }

    .contact-info h2 {
        font-size:
            2.9rem;
    }

    .contact-call h2 {
        font-size:
            2.9rem;
    }

    .contact-final-inner h2 {
        font-size:
            2.9rem;
    }

    .contact-form-wrapper {
        padding:
            20px;
    }

}

/* =========================================================
   TYPOGRAPHY FIX
   větší rozestupy mezi písmeny
========================================================= */

.hero h1,
.huge-heading,
.why-content h2,
.portfolio-heading h2,
.sport-inner h2,
.final-cta h2 {

    letter-spacing: -2px;
    line-height: 0.92;

}


/* SLUŽBY */

.services-hero h1,
.services-intro-content h2,
.service-detail h2,
.sport-special-inner h2,
.services-final-inner h2 {

    letter-spacing: -2px;
    line-height: 0.92;

}


/* PORTFOLIO */

.portfolio-hero h1,
.case-study-intro-content h2,
.portfolio-final-inner h2 {

    letter-spacing: -2px;
    line-height: 0.92;

}


/* KONTAKT */

.contact-hero h1,
.contact-info h2,
.contact-call h2,
.contact-final-inner h2 {

    letter-spacing: -2px;
    line-height: 0.92;

}


/* =========================================================
   MOBILE TYPOGRAPHY
========================================================= */

@media (max-width: 700px) {

    .hero h1,
    .huge-heading,
    .why-content h2,
    .portfolio-heading h2,
    .sport-inner h2,
    .final-cta h2,
    .services-hero h1,
    .services-intro-content h2,
    .service-detail h2,
    .sport-special-inner h2,
    .services-final-inner h2,
    .portfolio-hero h1,
    .case-study-intro-content h2,
    .portfolio-final-inner h2,
    .contact-hero h1,
    .contact-info h2,
    .contact-call h2,
    .contact-final-inner h2 {

        letter-spacing: -1px;
        line-height: 0.95;

    }

}
