@font-face {
    font-family: 'Merriweather-SemiBold';
    src: url("Merriweather_Sans/static/MerriweatherSans-SemiBold.ttf");
}
@font-face {
    font-family: 'Merriweather-Bold';
    src: url("Merriweather_Sans/static/MerriweatherSans-Bold.ttf");
}
@font-face {
    font-family: 'Merriweather';
    src: url("Merriweather_Sans/static/MerriweatherSans-Regular.ttf");
}
@font-face {
    font-family: 'Merriweather-Light';
    src: url('Merriweather_Sans/static/MerriweatherSans-Light.ttf');
}

/* RESET / BASE */
html, body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    box-sizing: border-box;
    background-color: var(--background-color-1);
    overflow-x: hidden;
}

/* Accessible/SEO utility: keeps an element in the DOM (and readable by
   screen readers and crawlers) but removes it from visual layout entirely.
   Used for heading structure that supports page hierarchy without adding
   any new visible text to the design. */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* HOME */
#home {
    box-sizing: border-box;
    background-color: var(--background-color-1);
    display: flex;
    flex-direction: column;
    padding-top: 5em;
    height: 100vh;
}

#home-container {
    display: flex;
    width: 100%;
    position: relative;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

#about-img-container {
    display: flex;
    width: 100%;
    flex: 1;
    height: clamp(24em, 63vh, 48em);
    justify-content: space-between;
    background-color: var(--highlight-color-1);
}

#home-background-image {
    width: 56%;
    object-fit: cover;
    object-position: center;
}

#about-container {
    display: flex;
    background-color: var(--background-color-2);
    width: 44%;
    overflow: hidden;
    min-height: 0;
}

#about-liner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: var(--background-color-1);
    font-size: clamp(1em, 1.38vw, 1.6em);
    line-height: 140%;
    padding: 1em 1.2em;
    font-family: "Merriweather";
    gap: 0.8em;
    overflow-y: scroll;
}

.contact-button {
    text-decoration: none;
    color: var(--background-color-1);
}

.contact-button:hover {
    color: var(--color-1);
}

#bottom-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    background-color: var(--background-color-1);
}

#service-proj-container {
    display: flex;
    width: 100%;
    align-items: center;
    padding: .8% 1%;
    box-sizing: border-box;
    min-height: 4em;
}

#service-box {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 44%;
    flex-wrap: wrap;
    column-gap: .65em;
    row-gap: .55em;
}

.service-buttons {
    background-color: var(--color-1);
    border-radius: .1em;
    height: auto;
    padding: .25em .5em;
    text-decoration: none;
    color: var(--background-color-1);
    font-family: "Merriweather-SemiBold";
    font-size: clamp(.78em, 1vw, 1em);
    cursor: pointer;
    transition: background-color 0.4s ease;
    white-space: nowrap;
}

.service-buttons:hover {
    background-color: var(--highlight-color-1);
    color: var(--background-color-1);
}

#project-box {
    display: flex;
    flex-direction: row;
    box-sizing: border-box;
    align-items: center;
    justify-content: space-evenly;
    width: 56%;
    flex-wrap: nowrap;
}

.project-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-2);
    font-family: "Merriweather-SemiBold";
    font-size: clamp(1em, 1.3vw, 1.5em);
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
}

#completed-projects-button:hover {
    color: var(--color-1);
}
