html,
body {
margin: 0;
padding: 0;
width: 100%;
min-height: 100vh;
background: #2c3e50;
font-family: 'Times New Roman', Times, serif;
overflow: hidden;
overflow-y: auto;
}
a {
text-decoration: none;
}
.button a {
display: block;
width: 100%;
height: 100%;
color: black;
padding: 1rem 0;
text-align: center;
}
.main-container {
display: grid;
grid-template-columns: 1fr;
grid-auto-rows: 4rem auto auto;
gap: .25rem;
grid-template-areas:
"header"
"main"
"footer";
width: 100%;
min-height: 100vh;
position: relative;
}
/* --- HEADER --- */
header {
grid-area: header;
margin: 0;
padding: 0;
width: 100%;
}
header nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 1.2rem;
background-color: rgb(106, 112, 196);
color: white;
}
header nav .logo {
font-size: 2rem;
}
header nav .links, .menu, .dropdown {
list-style-type: none;
}
header nav input[type="checkbox"] {
display: none;
}
header nav .links {
display: flex;
}
header nav .links .hamburger {
display: none;
font-size: 1.5rem;
user-select: none;
cursor: pointer;
}
header nav .menu {
display: flex;
gap: 1em;
font-size: 1.1rem;
}
header nav .menu a {
display: block;
width: 100%;
height: 100%;
color: white;
padding: 5px 14px;
}
header nav .menu li {
transition: 0.3s ease;
}
@media (any-hover: hover) {
header nav .menu li:hover {
background-color: #4c9e9e;
border-radius: .5rem;
}
}
header nav .services {
position: relative;
}
header nav .dropdown {
background-color: rgb(1, 139, 139);
padding: 1em 0;
position: absolute;
display: none;
border-radius: .5rem;
top: 30px;
}
header nav .dropdown a {
padding: 0;
}
header nav .dropdown li {
padding: 0.5em 1em;
width: 8em;
text-align: center;
}
header nav .dropdown li + li {
margin-top: .7rem;
}
@media (any-hover: hover) {
header nav .dropdown li:hover {
background-color: #4c9e9e;
}
header nav .services:hover .dropdown {
display: block;
}
}
@media screen and (max-width: 768px) {
header nav {
isolation: isolate;
}
header nav .menu {
display: none;
position: absolute;
top: 3rem;
left: 0;
width: calc(100% - 2rem);
z-index: 9999;
background-color: rgb(106, 112, 196);
padding: 1rem;
text-align: center;
}
header nav .links .hamburger {
display: block;
}
header nav input[type="checkbox"]:checked ~ .menu {
display: block;
}
header nav .dropdown {
top: 2rem;
left: 50%;
}
}
/* --- MAIN --- */
main {
grid-area: main;
display: flex;
flex-direction: row;
gap: .5rem;
padding: .25rem;
}
main nav, article, aside {
border-radius: .5rem;
padding: 1rem;
}
main nav {
flex: 1 1 20%;
background: #95a5a6;
padding: .5rem;
}
main nav img {
border-radius: .5rem;
margin-bottom: 2rem;
width: 100%;
height: auto;
}
main article {
flex: 1 1 60%;
background: #ecf0f1;
font-family: inherit;
}
main article h2 {
padding-bottom: 3rem;
}
main article section + section h2 {
padding-top: 2rem;
}
main article .button {
border: 5px solid black;
margin: 2rem auto;
width: 12rem;
background-color: #e70c68;
font-size: 1.1rem;
}
main aside {
flex: 1 1 20%;
background: #3498db;
padding-top: 10rem;
font-family: inherit;
}
@media screen and (max-width: 640px) {
main {
flex-direction: column;
}
main article {
order: 1;
}
main nav {
order: 2;
}
main aside {
padding-top: 1rem;
order: 3;
}
}
/* --- FOOTER --- */
footer {
grid-area: footer;
background-color: rgb(143, 119, 187);
margin: 0 .25rem;
border-top-left-radius: .5rem;
border-top-right-radius: .5rem;
padding: 1rem;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr auto;
grid-template-areas:
"address contact"
"icons icons";
}
footer .address {
grid-area: address;
text-align: center;
}
footer .contact {
grid-area: contact;
text-align: left;
}
footer .icons {
grid-area: icons;
display: flex;
justify-content: center;
gap: 2rem;
flex-wrap: wrap;
padding-top: 1rem;
}
@media screen and (max-width: 420px) {
footer {
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr auto;
grid-template-areas:
"address"
"contact"
"icons";
}
footer div {
margin: .5rem 0;
}
}