* {
    box-sizing: border-box;
}

html {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-color: #333333;
    color: whitesmoke;
    font-family: "Montserrat", sans-serif;

    background-image: url("./images/texture.jpg");
    background-size: cover;
    background-repeat: no-repeat;
}

a {
    text-decoration: none;
    color: inherit;
}

a:visited {
    color: rgb(218, 0, 230);

    .service {
        border: solid 1px rgb(218, 0, 230);
    }
}

body {
    margin: 1em;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: .5em;
    padding: 0;
    box-sizing: border-box;
}

header {
    text-align: center;
}

.main-header {
    padding: 1em;
    max-height: 20vh;
}

.main-section {
    min-height: 60vh;
    padding: 1em;
    display: flex;
    flex-direction: column;
    text-align: center;
}

.block {
    display: block;
}

.cloud-wide-container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.family-unit-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.family-unit-item {
    flex: 1 1 10%;
    display: none;
    flex-direction: column;
    align-items: center;
}

.family-unit-services {
    gap: 0.2em;
    display: flex;
    flex-direction: column;
}

.service-icon {
    font-size: xx-large;
}

.service-title {
    margin-top: 1em;
}

.service {
    padding: 1em;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: solid 1px whitesmoke;
    border-radius: .2em;
}

.service:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.main-footer {
    max-height: 20vh;
    padding: 1em;
}

@media screen and (min-width: 640px) {
    .family-unit-container {
        flex-direction: row;
    }
}