* {
    font-family: 'Truculenta';
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* HEADER */
header {
    background-image: url('../images/shore.webp');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-color: #55DDE0;
    width: 100%;
    height: auto;
    padding: 1rem;
    display: grid;
    grid-template-columns: 1fr 2fr;
    align-items: center;
    justify-content: center;
}

header a {
    grid-row: 1/3;
}

h1 {
    font-size: 8vw;
    text-shadow: 2px 2px 5px white;
}

header p {
    font-size: 5vw;
}

#banner-home {
    background-color: white;
    padding: .5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 20px 20px -20px #F6AE2D inset, 0 -20px 20px -20px #55DDE0 inset;
}

#banner-home p {
    max-width: 1000px;
    height: auto;
    text-align: center;
}

#banner-btn {
    background-image: linear-gradient(#55DDE0, #F6AE2D);
    font-weight: bold;
    margin: .5rem 1rem;
    padding: .5rem;
    border: none;
    border-radius: 10px;
    cursor: pointer;
}

/* NAVIGATION */
nav, #ham-btn {
    background-image: linear-gradient(to right, #55DDE0, #F6AE2D);
    background-color: #F6AE2D;
    position: sticky;
    top: 0;
    z-index: 1;
}

nav {
    display: none;
}

nav a {
    display: block;
    color: #2F4858;
    font-size: 2rem;
    text-decoration: none;
    padding: 1rem;
}

nav a:hover {
    background-color: #55DDE0;
    font-weight: bold;
}

#ham-btn {
    width: 100%;
    height: auto;
    font-size: 2rem;
    font-weight: bold;
    border: none;
}

#ham-btn::before {
    content: '≡';
}

#ham-btn.show::before {
    content: '⨉';
}

.show {
    display: block;
    text-align: center;
}

/* FOOTER */
footer {
    background-color: #2F4858;
    color: #55DDE0;
    padding: 1rem;
    text-align: center;
}

footer a {
    color: white;
}

.project-info {
    color: #F6AE2D;
}

/* MAIN - ALL PAGES */
main {
    margin: 3rem;
}

main section {
    margin: 5rem auto;
}

h1, h2, h3, h4 {
    font-family: 'Junge';
    letter-spacing: .25rem;
    line-height: 2rem;
    text-align: center;
    align-self: center;
}

h2 {
    font-size: 1.8rem;
    margin: 2rem auto;
    padding: 1rem;
    border: 10px solid;
    border-image-slice: 1;
    border-width: 5px;
    border-image-source: linear-gradient(to left, #55DDE0, #F6AE2D);
}

h3 {
    font-size: 1.6rem;
    margin: 2rem auto;
    padding: 1rem;
    border: 5px solid;
    border-image-slice: 1;
    border-width: 3px;
    border-image-source: linear-gradient(to left, #55DDE0, #F6AE2D);
    border-left: none;
    border-right: none;
}

h4 {
    font-size: 1.4rem;
}

p, ul {
    font-size: 1.2rem;
    text-align: center;
    line-height: 2rem;
    padding: .5rem;
}

img, iframe {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 2rem auto;
    box-shadow: 0 0 15px #2F4858;
}

.icons {
    display: inline;
    margin: 0 auto;
    box-shadow: none;
}

/* HOME PAGE - MAIN */
.large-view {
    display: none;
}

.small-view {
    position: relative;
}

.left, .right {
    position: absolute;
    top: 45%;
    padding: .5rem;
    border: none;
    background-color: white;
    opacity: .8;
}

.right {
    right: 0;
}

.left {
    left: 0;
}

#call-to-action {
    background-image: linear-gradient(#55DDE0, #F6AE2D);
    background-color: #55DDE0;
    font-weight: bold;
    margin: 2rem auto;
    padding: 1rem;
    border-radius: 30px;
}

#call-to-action h3, #call-to-action h4 {
    margin: 0;
    padding: 1rem;
    border: none;
}

#locations-nav div {
    margin: 3rem auto;
}

#rental-summary ul {
    list-style: none;
}

#rental-summary a {
    color: #2F4858;
    font-family: 'Junge';
    font-weight: bold;
    text-decoration: none;
}

#weather, #social-media {
    text-align: center;
}

.capitalize {
    text-transform: capitalize;
}

#social-media a {
    padding: 1rem;
}

/* RENTALS PAGE - MAIN */
#rentals-main h3 {
    margin: 0 auto;
    border: none;
}

#rentals-main section {
    padding: 2rem;
    border: 10px solid;
    border-image-slice: 1;
    border-width: 3px;
    border-image-source: linear-gradient(to left, #55DDE0, #F6AE2D);
}

table {
    display: table;
    margin: 1rem auto;
    border-collapse: collapse;
    border: 1px solid #2F4858;
}

caption {
    display: none;
}

tr, td {
    text-align: center;
    border: 1px solid #2F4858;
}

td {
    padding: .5rem;
}

.orange {
    background-color: #F6AE2D;
}

.blue {
    background-color: #55DDE0;
}

.orange, .blue {
    font-size: 1.2rem;
}

/* RESERVATIONS PAGE - MAIN */
#agreement ul {
    text-align: left;
    margin-left: 1rem;
}

#reservations-main img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

fieldset {
    margin: 2rem auto;
    padding: 2rem;
    border: 5px solid;
    border-image-slice: 1;
    border-width: 3px;
    border-image-source: linear-gradient(to left, #55DDE0, #F6AE2D);
}

fieldset p {
    text-align: left;
}

legend {
    font-family: 'Junge';
    font-size: 1.8rem;
    letter-spacing: .25rem;
}

label {
    font-size: 1.2rem;
    font-weight: bold;
}

label.top input, textarea {
    display: block;
    width: 80%;
    min-height: 44px;
    font-weight: normal;
    margin: .5rem auto 1.5rem 0;
}

.sbs {
    display: block;
    font-size: 1.2rem;
    font-weight: normal;
    padding: .5rem;
}

.sbs input {
    margin: .5rem;
}

form p {
    font-size: 1.2rem;
    font-weight: bold;
    margin: 1.5rem auto .5rem 0;
}

.submit-btn {
    background-image: linear-gradient(#55DDE0, #F6AE2D);
    background-color: #55DDE0;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: .25rem;
    padding: 2rem;
    border: none;
    border-radius: 10px;
}

/* CONTACT US - MAIN */
#contact-main form {
    padding: 2rem;
    border: 10px solid;
    border-image-slice: 1;
    border-width: 3px;
    border-image-source: linear-gradient(to left, #55DDE0, #F6AE2D);
}

#contact-main .submit-btn {
    font-size: 1.4rem;
    padding: 1rem;
}

#maps div {
    margin: 3rem auto;
}

/* ATTRIBUTIONS - MAIN */
#attributions-main ul {
    line-height: 2rem;
    list-style: none;
}