@layer base, layout, components, utilities;
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Literata:opsz,wght@7..72,200..900&display=swap');

@layer base {
    :root {
        --deep_safari: #1F3D3A;
        --deep_safari_hover: #3b837a;
        --sand_beige: #F4EFE6;
        --sunset_gold: #C89B3C;
        --terracota: #C65D3B;
        --ocean_blue: #3083FF;
        --dark_charcoal: #2B2B2B;
        --soft_gray: #6F6F6F;
        --light_gray: #E5E5E5;
        --pure_white: #FFFFFF;
        --succes_green: #3FA34D;
        --warning_amber: #E0A800;
        --error_red: #D64545;
        --dark_gold: #A87E2E;
        --amber_light: #EBD38A;
        --sunset_gold_hover: #B48726;

        --inter: "Inter", sans-serif;
        --literata: "Literata", serif;
    }

    body {
        margin: 0 auto;
    }

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

    html {
        scroll-behavior: smooth;
    }
}

@layer layout {
    .header--contact {
        background-image: linear-gradient(
            to bottom left,
            rgba(0, 0, 0, 0) 30%,
            rgba(0, 0, 0, 0.9)
        ),url("../images/contact_background.png");
        background-size: cover;
        background-position: center top;
        background-repeat: no-repeat;
    }

/*nahore prouzek zeleny*/
    .header__strip {
        background-color: var(--deep_safari);;
        display: flex;
        justify-content: space-between;
        padding: .75rem 2rem;
    }
    .strip__section {
        display: flex;
        align-items: center;
        gap: 2rem;
    }
    .strip__icons {
        display: flex;
        gap: 0.75rem;
        align-items: center;
        text-decoration: none;
    }
    .strip__info {
        font-family: var(--inter);
        display: none;
    }
    @media(min-width: 768px) {
        .strip__info {
            display: block;
            color: var(--pure_white);
            font-weight: bold;
        }
    }

/*menu navbar nahore*/
    .logo__graphic {
        width: auto;
        height: clamp(80px, 14vw, 100px);
    }
    .header__nav {
        display: flex;
        padding: 1vw;
        align-items: center;
        justify-content: space-between;
    }
    .nav__logo {
        display: flex;
        align-items: center;
        gap: clamp(5px, 1vw, 100px);
        text-decoration: none;
    }
    .logo__text {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        color: var(--pure_white);
        font-weight: 500;
    }
    .text__up {
        font-family: var(--literata);
        font-size: clamp(1rem, 3vw, 1.75rem);
        margin: 0;
        letter-spacing: .05rem;
    }
    .text__bottom {
        font-family: var(--literata);
        font-size: clamp(1rem, 3vw, 1.75rem);
        margin: 0;
        letter-spacing: .65rem;
    }
    .nav__menu {
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .menu__list {
        display: flex;
        justify-content: space-between;
        align-items: center;
        list-style: none;
        margin: 0;
        padding: 0;
        gap: clamp(0.75rem, 1.5vw, 2rem);
    }
    .menu__list li {
        display: flex;
        align-items: center;
        gap: .5rem;
        font-family: var(--inter);
        font-weight: 700;
        font-size: clamp(0.75rem, 1.2vw, 1.2rem);
    }
    .li__link {
        text-decoration: none;
        color: var(--deep_safari);
    }
    .li__link:hover {
        text-decoration: none;
        color: var(--deep_safari_hover);
    }
    .li__link:hover svg path {
        fill: var(--deep_safari_hover);
    }
    .menu__fav svg path {
        width: auto;
        height: clamp(15px, 2vw, 35px);
    }
    .menu__fav:hover svg path {
    fill: var(--deep_safari);
    }
    @media(max-width: 1150px) {
        .menu__list {
        display: none;
        }
    }

/*text hlavni header*/
    .header__title {
        margin-top: clamp(10rem, 25vw, 15rem);
        padding: 1rem;
        padding-left: clamp(1rem, 5vw, 5rem);
        padding-bottom: 3rem;
        max-width: 800px;
    }
    .title__top {
        color: var(--sunset_gold);
        font-family: var(--inter);
        font-weight: 700;
        margin: 0;
        margin-right: 2rem;
        font-size: clamp(1rem, 2vw, 1.5rem);
        white-space: normal;
        word-break: break-word;
    }
    .title__main {
        font-family: var(--literata);
        font-size: clamp(2rem, 6vw, 5rem);
        font-weight: bold;
        color: var(--pure_white);
        margin: 0;
        padding-top: 1rem;
        white-space: normal;
        word-break: break-word;
    }
    .title__bottom {
        font-family: var(--inter);
        font-weight: 600;
        font-size: clamp(1rem, 2vw, 1.5rem);
        color: var(--pure_white);
        margin: 0;
        padding-top: 1rem;
        max-width: clamp(280px, 35vw, 600px);
    }

/*header tlacitka 2x pod textem*/
    .header__buttons {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        padding: 1rem clamp(1rem, 5vw, 5rem) 5rem;
        gap: 1rem;
        justify-content: center;
    }
    .button--fill {
        display: flex;
        padding: .2rem 1.5rem;
        width: 100%;
        max-width: 25rem;
        justify-content: space-between;
        background-color: var(--sunset_gold);
        color: var(--pure_white);
        font-family: var(--inter);
        font-weight: 650;
        font-size: 1.1rem;
        text-decoration: none;
        align-items: center;
        border-radius: .8rem;
    }
    .button--fill:hover {
        background-color: var(--sunset_gold_hover);
    }
    .button--transparent {
        display: flex;
        padding: .2rem 1.5rem;
        width: 100%;
        max-width: 25rem;
        justify-content: space-between;
        color: var(--pure_white);
        font-family: var(--inter);
        border: 2px solid var(--sand_beige);
        font-weight: 650;
        font-size: 1.1rem;
        text-decoration: none;
        align-items: center;
        border-radius: .8rem;
    }
    .button--transparent:hover {
        color: var(--deep_safari);
        background-color: var(--sand_beige);
    }
    .button--transparent:hover svg path {
            fill: var(--deep_safari);
    }
    @media(min-width: 624px) {
        .header__buttons {
            justify-content: start;
            flex-wrap: nowrap;
        }
        .button--fill {
            gap: 2rem;
            max-width: fit-content;
        }
        .button--transparent {
            gap: 2rem;
            max-width: fit-content;
        }
    }
    .about {
        display: grid;
        grid-template-columns: 1fr;
        padding: clamp(1rem, 5vw, 4rem) clamp(1rem, 4vw, 3rem) 0 clamp(1rem, 4vw, 3rem);
        max-width: 1900px;
        width: 100%;
        overflow: hidden;
    }
    .about * {
        min-width: 0;
    }
    .about__us {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        padding-top: 2rem;
        line-height: 150%;
    }
    .us__title {
        font-family: var(--literata);
        font-size: clamp(2.5rem, 5vw, 3rem);
        font-weight: 700;
        margin: 0;
    }
    .bottom__line--down {
        width: 80px;
        height: 2px;
        margin-top: 1rem;
        background-color: var(--sunset_gold);
    }
    .us__text {
        font-family: var(--inter);
        font-size: clamp(1.1rem, 4vw, 1.5rem);
        max-width: 850px;
        margin: 0;
        line-height: 150%;
    }
    .us__badges  {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 3rem;
        padding-top: 2rem;
        width: 100%;
    }
    .badges__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0 1rem;
        gap: 1rem;
        min-width: 0;
        width: 100%;
        padding: 0;
    }
    .item__name {
        font-family: var(--literata);
        font-size: clamp(1.25rem, 5vw, 1.5rem);
        font-weight: 700;
        margin: 0;
        text-align: center;
    }
    .item__subtitle {
        font-family: var(--inter);
        text-align: center;
        padding: 0 1rem;
        font-size: clamp(1.1rem, 5vw, 1.5rem);
        margin: 0 auto;
        line-height: 150%;
        max-width: 100%;
        overflow-wrap: break-word;
        word-break: break-word;
    }
    .about__contact {
        display: flex;
        align-items: center;
        flex-direction: column;
        padding-top: 2rem;
        gap: 2rem;
    }
    .contact__title {
        font-family: var(--literata);
        font-size: clamp(1.85rem, 5vw, 2.25rem);
        font-weight: 700;
        margin: 0;
        text-align: center;
    }
    .contact__params {
        display: flex;
        gap: 2rem;
        flex-direction: column;
        align-items: center;
        padding: 3rem 0;
    }
    .params__item {
        display: flex;
        align-items: center;
        gap: .75rem;
    }
    .item__description {
        display: flex;
        flex-direction: column;
        gap: .75rem;
    }
    .description__method {
        font-family: var(--inter);
        font-weight: 750;
        margin: 0;
        font-size: clamp(1rem, 5vw, 1.5rem);
    }
    .description__details {
        font-family: var(--inter);
        margin: 0;
        font-size: clamp(1.1rem, 5vw, 1.5rem);
    }
    .params__icons {
        display: flex;
        flex-direction: row;
        gap: 1rem;
    }
    .icons__item {
        background-color: var(--deep_safari);
        padding: .7rem .7rem;
        border-radius: 50rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .icons__item:hover {
        background-color: var(--deep_safari_hover);
    }
    .map {
        width: 100%;
        height: 100%;
        min-height: 400px;
        flex: 1;
        border-radius: 1rem;
        overflow: hidden;
    }
    @media(min-width: 1000px) {
        .about {
            grid-template-columns: 1fr;
            grid-template-rows: 1fr 1fr;
        }
        .about__contact {
        flex-direction: row;
        justify-content: space-between;
        }
        .contact__params {
            align-items: start;
        }
        .us__badges {
            flex-direction: row;
            gap: 2rem;
        }
        .badges__item {
            align-items: start;
            padding: 0;
        }
        .item__name {
            text-align: start;
        }
        .item__subtitle {
            text-align: start;
            padding: 0;
        }
        .contact__params {
            padding: 0;
        }
    }
    @media(min-width: 1450px) {
        .about {
            grid-template-columns: 1fr 1fr;
            grid-template-rows: 1fr;
            margin: 0 auto;
            gap: 2rem;
            justify-self: center;
        }
        .us__badges {
            flex-direction: row;
        }
        .about__contact {
            flex-direction: row;
        }
    }
    .team {
        background-color: var(--light_gray);
        display: flex;
        flex-direction: column;
        padding: clamp(1rem, 5vw, 1.5rem);
        gap: 1rem;
        margin: 5rem 1rem;
        justify-self: center;
        border-radius: 1rem;
        max-width: 1825px;
    }
    .team__title {
        display: flex;
        flex-direction: column;
    }
    .title__text {
        margin: 0;
        font-family: var(--literata);
        font-size: clamp(2.5rem, 5vw, 3rem);
        font-weight: 700;
    }
    .team__list {
        display: grid;
        gap: 1rem;
        grid-template-columns: 1fr;
    }
    @media(min-width: 750px) {
        .team__list {
            grid-template-columns: 1fr 1fr;
        }
    }
    @media(min-width: 1300px) {
        .team__list {
            grid-template-columns: repeat(4, 1fr);
        }
    }
    .list__item {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 4;
        background-color: var(--pure_white);
        border-radius: 1rem;
        overflow: hidden;
        transition: box-shadow 0.3s ease, transform 0.3s ease;
    }
    .list__item:hover {
        box-shadow: 10px 10px 25px rgba(0, 0, 0, 0.25);
        transform: translateY(-5px);
    }
    .item__profile {
        width: 100%;
        height: 250px;
        object-fit: cover;
        object-position: top;
        display: block;
    }
    .item__worker {
        padding: 0 1rem;
        font-family: var(--literata);
        font-weight: 700;
        font-size: clamp(1.25rem, 5vw, 1.5rem);
        margin: 0;
    }
    .item__position {
        padding: 0 1rem;
        font-family: var(--inter);
        color: var(--sunset_gold);
        font-size: clamp(1.1rem, 5vw, 1.5rem);
        font-weight: 650;
        margin: 0;
    }
    .item__desc {
        padding: 0 1rem 1rem 1rem;
        font-family: var(--inter);
        color: var(--dark_charcoal);
        font-size: clamp(1rem, 5vw, 1.5rem);
        margin: 0;
    }
    .image__advert {
        border-radius: 1rem;
        overflow: hidden;
    }

    .advert__africa {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        min-height: 500px;
    }
}

@layer components {
    .forms {
        max-width: 1850px;
        justify-self: center;
    }
    .forms__title {
        display: flex;
        flex-direction: column;
        padding: 1rem;
        width: fit-content;
    }
    .title__formtext {
        margin: 0;
        font-family: var(--literata);
        font-size: clamp(2.5rem, 5vw, 3rem);
        font-weight: 700;
    }
    .forms__content {
        display: grid;
        padding: 1rem;
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    @media(min-width: 900px) {
        .forms__content {
            grid-template-columns: 1fr 1fr;
        }
    }
    .forms__fill {
        background-color: var(--deep_safari);
        border-radius: 1rem;
        padding: 1.5rem;
        height: 100%;
        align-items: center;
    }
    .forms__first {
        color: var(--pure_white);
        font-family: var(--inter);
        font-weight: 600;
        margin: 0 0 .5rem 0;
        font-size: clamp(1rem, 5vw, 1.15rem);
    }
    .forms__other {
        color: var(--pure_white);
        font-family: var(--inter);
        font-weight: 600;
        margin: 1rem 0 .5rem 0;
        font-size: clamp(1rem, 5vw, 1.15rem);
    }
    .forms__input {
        border-radius: .5rem;
        padding: .5rem;
        width: 100%;
        font-size: 1rem;
        font-family: var(--inter);
        font-size: clamp(1rem, 5vw, 1.15rem);
    }
    .forms__input--name {
        max-width: 300px
    }
    .forms__input--mail {
        max-width: 450px
    }
    .forms__input--object {
        max-width: 600px
    }
    .forms__input--message {
        padding-bottom: 8rem;
        resize: none;
        overflow: auto;
        scrollbar-color: #888 transparent;
    }
    .name__red {
        color: var(--error_red);
    }
    .forms__button {
        display: flex;
        align-items: center;
        gap: .75rem;
        background-color: var(--sunset_gold);
        padding: 1.2rem 1.5rem;
        margin-top: 1rem;
        border: none;
        border-radius: .5rem;
        color: var(--pure_white);
        font-weight: 600;
        font-family: var(--inter);
        font-size: clamp(1.20rem, 4vw, 1.3rem);
    }
    .forms__button:hover {
        background-color: var(--sunset_gold_hover);
    }
    .consent__info {
        font-family: var(--inter);
        color: var(--pure_white);
        font-weight: 550;
    }
    .personal {
        font-family: var(--inter);
        color: var(--ocean_blue);
        font-weight: 550;
        text-decoration: underline;
    }
    .personal:hover {
        color: #86b6ff;
    }
    .forms__consent {
        display: flex;
        align-items: center;
        gap: 1rem;
    }
    input[type="checkbox"] {
        accent-color: var(--ocean_blue);
    }
    .forms__footer {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        margin-top: 1rem;
        gap: 1rem;
    }
    @media(min-width: 600px) {
        .forms__footer {
            flex-direction: row;
            justify-content: space-between;
        }
    }



}