@font-face {
    font-family: 'josefin';
    src: url('fonts/josefin.ttf');
    font-display: swap;
}

@font-face {
    font-family: 'assistant-bold';
    src: url('fonts/assistant-bold.ttf');
    font-display: swap;
}

@font-face {
    font-family: 'assistant-light';
    src: url('fonts/assistant-light.ttf');
    font-display: swap;
}

@font-face {
    font-family: 'assistant-regular';
    src: url('fonts/assistant-regular.ttf');
    font-display: swap;
}

html {
    font-size: 1px;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'assistant-light';
    font-size: 16rem;
    text-align: justify;
    overflow-x: hidden;
}

body::-webkit-scrollbar {
    width: 8rem;
}
  
body::-webkit-scrollbar-track {
    background: #141414;
}
  
  
body::-webkit-scrollbar-thumb {
    background-color: #4B4B4B;
}
  
body::-webkit-scrollbar-thumb:active {
    background-color: #696969;
}

p, h1, h2, h3, h4, h5, h6, button {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: normal;
    display: block;
}

#title {
    margin-top: 25rem;
    font-family: 'josefin';
    font-size: 36rem;
    width: 100%;
    text-align: center;
    color: #141414;
}

#subtitle {
    font-family: 'josefin';
    font-size: 32rem;
    width: 100%;
    text-align: center;
    color: #4B4B4B;
    margin-bottom: 25rem;
}

#separator {
    height: 1rem;
    max-width: 970rem;
    width: calc(100% - 35rem);
    background-color: #141414;
    margin: 0 auto;
}

#navigation {
    display: flex;
    justify-content: space-evenly;
    margin: 25rem auto 25rem auto;
    max-width: 401rem;
    width: calc(100% - 35rem)
}

.navigation-button {
    font-family: 'assistant-light';
    font-size: 20rem;
    color: #4B4B4B;
    background-color: unset;
    border: unset;
    cursor: pointer;
}

.navigation-button:hover {
    color: #141414;
    text-decoration: underline;
    text-decoration-color: #141414;
    text-decoration-thickness: 1rem;
}

#about-card {
    display: flex;
    height: auto;
    max-width: 970rem;
    width: calc(100% - 35rem);
    border-radius: 15rem;
    background-color: #141414;
    margin: 0 auto;
}

#about-text {
    text-align: justify;
    padding: 20rem;
    font-family: 'assistant-light';
    color: white;
    width: calc(100% - 35rem);
}

#about-quote {
    max-width: 552rem;
}

#about-info {
    margin-top: 25rem;
    max-width: 552rem;
    opacity: 0.5;
}

#social {
    display: flex;
    gap: 15rem;
    height: fit-content;
    margin: auto 10rem auto 0;
    flex-direction: column;
}

.social-button {
    width: 16rem;
    height: 16rem;
    --color_fill: #ffffff;
}

#social-facebook:hover {
    --color_fill: #4770df;
}

#social-instagram:hover {
    --color_fill: #df4781;
}

#social-linkedin:hover {
    --color_fill: #4770df;
}

#social-tiktok:hover {
    --color_fill: #df4781;
}

#social-youtube:hover {
    --color_fill: #da4b4b;
}

#social-twitter:hover {
    --color_fill: #6dbee4;
}

#main-image {
    max-width: 174rem;
    width: 100%;
    height: auto;
    border-radius: 0 15rem 15rem 0;
    object-fit: cover;
}

#contact-types-container {
    display: flex;
    justify-content: space-between;
    max-width: 970rem;
    margin: 25rem auto 0 auto;
}

.contact-type {
    background-color: #141414;
    border-radius: 15rem;
    max-width: 266rem;
    width: calc(100% - 35rem);
    color: white;
    padding: 20rem;
    transition: all 0.1s ease-in-out;
}

.contact-type-title {
    font-family: 'assistant-bold';
    font-size: 24rem;
    width: 100%;
    text-align: center;
}

.contact-type-description {
    margin: 0 auto;
}

.contact-type-button {
    margin-top: 25rem;
    width: 100%;
    border: unset;
    background-color: white;
    color: #141414;
    font-family: 'assistant-regular';
    font-size: 20rem;
    border-radius: 10rem;
    padding: 10rem;
    cursor: pointer;
    transition: all 0.1s ease-in-out;
}

.contact-type:hover {
    transform: translateY(-5rem);
}

.contact-type-button:hover {
    background-color: #141414;
    color: white;
}

#contact-card {
    display: flex;
    height: auto;
    max-width: 970rem;
    width: calc(100% - 35rem);
    border-radius: 15rem;
    background-color: #141414;
    margin: 25rem auto 0 auto;
    color: white;
}

#contact-form {
    display: flex;
    flex-direction: column;
    padding: 30rem;
    width: calc(100% - 60rem);
}

#contact-title {
    font-family: 'josefin';
    font-size: 28rem;
}

#contact-description {
    margin-bottom: 25rem;
}

#error-text {
    opacity: 0;
    width: 100%;
    text-align: center;
    margin-bottom: 5rem;
    color: #da4b4b;
}

.contact-field-name {
    margin-bottom: 5rem;
}

.contact-field-input {
    padding: 15rem;
    background-color: unset;
    width: calc(100% - 31rem);
    color: white;
    border: #ffffff 1rem solid;
    border-radius: 0 10rem 10rem 10rem;
    margin-bottom: 5rem;
    font-family: 'assistant-light';
    transition: all 0.1s ease-in-out;
}

.contact-field-input:hover {
    border: #b4b4b4 1rem solid;
}

#contact-send-button {
    font-family: 'assistant-regular';
    font-size: 20rem;
    padding: 10rem 25rem 10rem 25rem;
    background-color: white;
    color: #141414;
    border-radius: 10rem;
    width: fit-content;
    border: unset;
    margin: 15rem auto 0 auto;
    transition: all 0.1s ease-in-out;
    cursor: pointer;
}

#contact-send-button:hover {
    background-color: #141414;
    color: #ffffff;
}

#contact-image {
    max-width: 361rem;
    width: 100%;
    height: auto;
    border-radius: 0 15rem 15rem 0;
    object-fit: cover;
}

.default-card {
    display: flex;
    height: auto;
    max-width: 970rem;
    width: calc(100% - 35rem);
    border-radius: 15rem;
    background-color: #141414;
    margin: 25rem auto 0 auto;
    color: white;
}

.default-info {
    display: flex;
    flex-direction: column;
    padding: 30rem;
    width: calc(100% - 60rem)
}

.default-title {
    text-align: left;
    font-family: 'josefin';
    font-size: 28rem;
}

.default-description {
    max-width: 512rem;
}

.default-image {
    max-width: 361rem;
    width: 100%;
    max-height: 159rem;
    border-radius: 0 15rem 15rem 0;
    object-fit: cover;
}

#contact-methods-container {
    display: flex;
    justify-content: space-between;
    max-width: 970rem;
    margin: 25rem auto 0 auto;
}

.contact-method {
    font-family: 'assistant-bold';
    font-size: 24rem;
    background-color: #7A3E5D;
    border-radius: 10rem;
    max-width: 306rem;
    width: calc(100% - 35rem);
    color: white;
    padding: 10rem 0;
    transition: all 0.1s ease-in-out;
    border: unset;
    cursor: pointer;
    text-decoration: unset;
    text-align: center;
}

.contact-method:hover {
    background-color: unset;
    color: #7A3E5D;
}

#contact-method-phone {
    background-color: #576E98;
}

#contact-method-phone:hover {
    background-color: unset;
    color: #576E98;
}

#contact-method-whatsapp {
    background-color: #2C6346;
}

#contact-method-whatsapp:hover {
    background-color: unset;
    color: #2C6346;
}


#maps-container {
    margin: 0 auto; 
    max-width: 970rem; 
    width: calc(100% - 35rem);
}

#maps-view {
    border-radius: 15rem;
    width: 100%;
    height: 450rem;
    margin-top: 25rem;
}

#footer {
    margin-top: 125rem;
    color: white;
    background-color: #141414;
    padding: 15rem 0;
    width: 100%;
    text-align: center;
    font-family: 'assistant-regular';
    font-size: 14rem;
}

@media screen and (max-width: 1024px) {
    html {
        font-size: 2px;
    }

    #separator {
        max-width: 600rem;
    }
    
    #about-card {
        flex-direction: column;
        max-width: 600rem;
    }

    #about-quote {
        max-width: unset;
    }

    #about-info {
        max-width: unset;
    }

    #social {
        flex-direction: row;
        width: fit-content;
        margin: 0 auto 10rem auto;
    }

    #main-image {
        width: fit-content;
        max-width: unset;
        max-height: 295rem;
        border-radius: 15rem;
        object-fit: scale-down;
        margin: 0 auto 25px auto;
    }

    #contact-types-container {
        display: flex;
        flex-direction: column;
        justify-content: unset;
        gap: 25rem;
    }

    .contact-type {
        max-width: 560rem;
        width: calc(100% - 75rem);
        margin: 0 auto;
    }

    #contact-card {
        flex-direction: column;
        max-width: 600rem;
    }

    #contact-image {
        width: 100%;
        max-width: unset;
        max-height: 295rem;
        border-radius: 0 0 15rem 15rem;
    }

    .default-card {
        flex-direction: column;
        max-width: 600rem;
    }

    .default-image {
        width: 100%;
        max-width: unset;
        border-radius: 0 0 15rem 15rem;
        object-fit: cover;
    }

    #contact-methods-container {
        flex-direction: column;
        gap: 25rem;
    }

    .contact-method {
        margin: 0 auto;
        max-width: 600rem;
        width: calc(100% - 35rem);
    }

    #maps-container {
        max-width: 600rem;
    }
}

@media screen and (max-width: 600px) {
    html {
        font-size: 1px;
    }
}