@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans&family=Lato:wght@300&display=swap');

/* setting default property of 0/none for all margin/padding/border settings*/

* {
    margin: 0;
    padding: 0;
    border: none;
}

body {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    background-color: #f2f2f2;
}

a {
    text-decoration: none;
    color: #db4a4a;
}

/* headings and logo */

h1,
h2 {
    font-family: 'Josefin Sans', sans-serif;
    font-size: 200%;
    color: #db4a4a;
}

.logo {
    text-decoration: none;
    letter-spacing: 2px;
    margin: 20px;
    padding-top: 5px;
    font-size: 300%;
}

.navbar {
    list-style-type: none;
    margin: 10px;
    font-size: 150%;
    display: flex;
    flex-direction: row;
}

.navbar li {
    padding: 20px;
}

.navbar a:hover {
    border-bottom: 2.5px solid #db4a4a;
}

.active {
    border-bottom: 2.5px solid #db4a4a;
}

header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* hero-image */

/* Diagonal stripes styling adapted from - https://dev.to/snkds/how-to-create-striped-backgrounds-with-css-5dfn */
#hero-stripes {
    width: 100%;
    height: 600px;
    background: repeating-linear-gradient(45deg,
            #f2f2f2 0px,
            #f2f2f2 20px,
            #78d5f7 20px,
            #78d5f7 40px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}


#hero-image {
    width: 1280px;
    height: 500px;
    overflow: hidden;
    margin-top: 10px;
    margin-bottom: 15px;
    border: 4px solid #78d5f7;
    border-radius: 15px;
    box-shadow: rgba(120, 213, 247, 0.9) 0 0 13px 13px;
    background: url('../images/icecreamcounter.jpg') no-repeat center center;
    position: absolute;
    /* animates zoom effect on index page */
    /* Code adapted from Code Institutes Love Running Project hero-image zoom */
    animation-name: hero-zoom;
    animation-duration: 4s;
    animation-fill-mode: forwards;
}

/* creates the level of zoom for hero image */
/* Code adapted from Code Institutes Love Running Project hero-image zoom */
@keyframes hero-zoom {
    from {
        transform: scale(1);
    }
    to {
        transform: scale(1.05);
    }
}

.tagline {
    font-family: 'Josefin sans', 'sans-serif';
    text-transform: uppercase;
    color: #db4a4a;
    font-weight: bold;
    font-size: 175%;
    text-align: center;
    background-color: rgba(242, 242, 242, 0.9);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 15px;
    letter-spacing: 2px;
    position: relative;
}

.tagline h2 {
    padding: 10px;
}

.button {
    background-color: #94e3ff;
    font-family: 'Josefin sans', 'sans-serif';
    font-size: 26px;
    letter-spacing: 1px;
    font-weight: bold;
    text-align: center;
    border: none;
    padding: 10px;
    margin: 10px;
    border-radius: 12px;
    text-transform: none;   
}

.button a {
    color:#A63838;
}

.button a:hover {
    color: #f2f2f2;
}

/* business ethos */

#business-ethos {
    padding: 30px;
}

.ethos-group {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
}

#business-ethos h2 {
    text-align: left;
    line-height: 1.25em;
}

.about-us {
    padding-top: 15px;
    font-size: 150%;
    height: 300px;
    text-align: justify;
    line-height: 1.5em;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 110px;
}

.about-p {
    justify-content: space-around;
    padding: 40px;
}

.about-image {
    justify-content: space-between;
    padding: 40px;
    object-fit: contain;
}

.about-image img {
    border-radius: 15px;
    height: 465px;  
    width: 315px;  
}

.ingredients {
    padding-top: 15px;
    font-size: 150%;
    height: 300px;
    text-align: justify;
    line-height: 1.5em;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 110px;
}

.ingredients-p {
    justify-content: space-around;
    padding: 40px;
}

.ingredients-image {
    justify-content: space-between;
    padding: 40px;
}

.ingredients-image img {
    border-radius: 15px;
    height: 465px;  
    width: 315px;
}

.eat {
    padding-top: 15px;
    font-size: 150%;
    height: 300px;
    text-align: justify;
    line-height: 1.5em;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 110px;
}

.eat-p {
    justify-content: space-around;
    padding: 40px;
}

.eat-image {
    justify-content: space-between;
    padding: 40px;
}

.eat-image img {
    border-radius: 15px;
    height: 465px;  
    width: 315px;
}

/* menu and contact page background */

#stripes-menu {
    background: repeating-linear-gradient(45deg,
            #f2f2f2 0px,
            #f2f2f2 20px,
            #78d5f7 20px,
            #78d5f7 40px);
    width: 100%;
    overflow: hidden;
    height: 1300px;
}

#stripes-contact {
    background: repeating-linear-gradient(45deg,
            #f2f2f2 0px,
            #f2f2f2 20px,
            #78d5f7 20px,
            #78d5f7 40px);
    width: 100%;
    overflow: hidden;
    height: 810px;
}

/* menu page */
/* code acquired from stackoverflow to fix bug - https://stackoverflow.com/questions/66564503/wrong-validation-on-element-br-in-ul-li-elements */
.menu-items > li:not(:first-child) {
    margin-top: 1em;
}

.menu {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
}

.menu-background-left {
    width: 40%;
    height: 1160px;
    background-color: rgba(242, 242, 242, 0.8);
    border-radius: 15px;
    margin: 0 auto;
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
}

.menu-background-right {
    width: 40%;
    height: 670px;
    background-color: rgba(242, 242, 242, 0.8);
    border-radius: 15px;
    margin: 0 auto;
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    row-gap: 15px;
}  
  
.icecream {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    flex: 1;
    margin: .75rem;
}

.toppings {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    flex: 1;
    margin: .75rem;
}

.prices {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    flex: 1;
    margin: .75rem;
}

.coffee {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    flex: 1;
    margin: .75rem;
}

.menu-img > img {
    width:100%;
    height: 470px;
    border-radius: 15px;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    transform: scaleX(-1);
}

.menu-headings {
    text-align: center;
    font-size: 200%;
    text-decoration: underline;
    text-underline-offset: .75rem;
    margin: .75rem;
}

.menu-items {
    list-style-type: none;
    font-size: 130%;
    font-weight: 600;
    text-align: left;
    line-height: 1.25em;
    columns: 1;
    margin: .75rem;  
}

.menu-items em {
    font-size: 20px;
    font-weight: 500;
}

.extra-info {
    color: #f53636;
    font-size: 18px;
}

.menu-items-toppings {
    list-style-type: none;
    font-size: 130%;
    font-weight: 500;
    text-align: center;
    line-height: 1.5em;
    columns: 2;
    margin: .55rem;
}

.menu-items-prices {
    font-size: 130%;
    font-weight: 600;
    columns: 1;
    list-style-type: none;
    text-align: center;
    line-height: 1.7em;
}

.menu-items-prices em {
    font-size: 20px;
    font-weight: 500;
}

.menu-items-coffee {
    list-style-type: none;
    font-size: 130%;
    font-weight: 500;
    text-align: center;
    line-height: 1.75em;
    columns: 2;
    margin: .55rem;
}

/* contact form */

#contact-container {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
}

#contact-us-container-left {
    width: 45%;
    height: 700px;
    background-color: rgba(242, 242, 242, 0.8);
    border-radius: 15px;
    margin: 0 auto;
    margin-top: 50px;
}

#contact-us-container-right {
    width: 45%;
    height: 700px;
    background-color: rgba(242, 242, 242, 0.8);
    border-radius: 15px;
    margin: 0 auto;
    margin-top: 50px;
}

#contact-us-left {
    padding: 20px;
}

#contact-us-right {
    padding: 20px;
}

#contact-us-right iframe {
    margin-top: 20px;
}

#contact-us-right p {
    font-size: 110%;
    color: #012615;
    text-align: center;
}

#address-scoops {
    color: #db4a4a;
}

#contact-us-container h2 {
    font-size: 200%;
}

#fname,
#lname,
#email,
#newsletter,
#textarea {
    margin: 10px;
    font-size: 170%;
    color: #012615;
}

label {
    width: 140px;
    display: inline-block;
    font-size: 1.25em;
}

input {
    border-radius: 12px;
}

textarea {
    font-family: 'Josefin sans', 'sans-serif';
    padding: 10px;
    border-radius: 15px;
}

#textarea {
    display: block;
    margin: 0 auto; 
}

.submit-button {
    background-color: #94e3ff;
    color: #A63838;
    font-family: 'Josefin sans', 'sans-serif';
    font-size: 20px;
    letter-spacing: 1px;
    font-weight: bold;
    text-align: center;
    border: none;
    padding: 15px;
    border-radius: 12px;
    display: block; 
    margin: 0 auto;
}

.submit-button:hover {
    color: #f2f2f2;
}

#google-map {
    width: 90%;
    overflow: hidden;
    border-radius: 15px;
    margin: 0 auto;
}

/* footer */

#footer-group {
    height: 100px;
    width: 100%;
    display: flex;
    justify-content: space-around;
    color: #db4a4a;
    font-size: 20px;
    font-weight: 700;
    margin-top: 30px;
    margin-bottom: 40px;
    bottom: 0;
}

#opening-times {
    list-style-type: none;
    padding-bottom: 20px;
}

#social-media {
    list-style-type: none;
    display: flex;
    justify-content: space-around;
    font-size: 24px;
}

#left-footer>h3 {
    text-align: center;
}

#center-footer>h3 {
    text-align: center;
}

#right-footer>h3 {
    text-align: center;
}

/* media query section - breakpoints for responsiveness */

/* For extra large devices (large laptops and desktop monitors, 1300px wide and down) */
@media only screen and (max-width: 1300px) {

    #hero-stripes {
        width: 1300px;
    }

    #hero-image {
        width: 90%;
    }

    .menu-background-left, .menu-background-right {
        width: 44%;
    }


}

/* breakpoint for index and menu page 1170px*/
@media only screen and (max-width: 1170px) {

    header {
        font-size: 24px;
    }

    #hero-stripes {
        width: 1190px;
    }

    #hero-image {
        width: 90%;
    }

    .about-us {
        flex-direction: column;
        flex: 1;
    }

    .ingredients {
        flex-direction: column;
        flex: 1;
    }

    .eat {
        flex-direction: column;
        flex: 1;
    }
   
    #business-ethos h2 {
        font-size: 250%;
    }

    .about-p {
        font-size: 150%;
        line-height: 3.5rem;
    }

    .about-image img {
        height:600px;
        width: 440px;
    }

    .ingredients-p {
        font-size: 150%;
        line-height: 3.5rem;
    }

    .ingredients-image img {
        height: 600px;
        width: 440px;
    }

    .eat-p {
        font-size: 150%;
        line-height: 3.5rem;
    }

    .eat-image img {
        height:600px;
        width: 440px;
    }

    .menu {
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
    }

    #stripes-menu {
        height: 3565px;
    }

    #stripescontact {
        height: 2600px;
    }

    .menu-background-left, .menu-background-right {
        width: 75%;
    }

    .menu-headings {
        font-size: 275%;
    }

    .menu-items {
        font-size: 225%;
    }

    .menu-items, .menu-items-toppings, .menu-items-prices, .menu-items-coffee {
        font-size: 200%;
    }

    .menu-items em, .menu-items-prices em, .extra-info {
        font-size: 26px;
    }

    .menu-background-left {
        height: 1695px;
    }

    .menu-background-right {
        height: 950px;
        row-gap: 40px;
    }

    .menu-img > img {
        height: 690px;
    }

}

/* For large devices (large tablets, laptops and smaller desktops, 1024px and down) */

@media only screen and (max-width: 1024px) {
    
    header {
        font-size: 24px;
    }

    .navbar {
        padding-left: 150px;
        padding-top: 20px;
    }

    .navbar > li {
        text-align: center;
        line-height: 2.25rem;
    }

    #hero-stripes {
        width: 1060px;
    }

    #hero-image {
        width: 90%;
    }

    .tagline {
        font-size: 160%;
    }

    .button {
        font-size: 26px;
    }

    #business-ethos {
        width: 1000px;
    }

    #business-ethos h2 {
        font-size: 250%;
    }

    .about-p {
        font-size: 150%;
        line-height: 3.5rem;
    }

    .about-image img {
        height:600px;
        width: 440px;
    }

    .ingredients-p {
        font-size: 150%;
        line-height: 3.5rem;
    }

    .ingredients-image img {
        height:600px;
        width: 440px;
    }

    .eat-p {
        font-size: 150%;
        line-height: 3.5rem;
    }

    .eat-image img {
        height:600px;
        width: 440px;
    }

    #stripes-menu {
        width: 1030px;
        height: 3980px;
    }

    #stripes-contact {
        width: 1030px;
        height: 2015px;
    }

    .about-us {
        flex-direction: column;
        flex: 1;
    }

    .ingredients {
        flex-direction: column;
        flex: 1;
    }

    .eat {
        flex-direction: column;
        flex: 1;
    }
   
    .menu {
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
    }

    .menu-background-left, .menu-background-right {
        width: 80%;
    }

    .menu-headings {
        font-size: 46px;
    }

    .menu-items, .menu-items-toppings, .menu-items-prices, .menu-items-coffee {
        font-size: 36px;
    }

    .menu-items em, .menu-items-prices em, .extra-info {
        font-size: 30px;
    }

    .menu-background-left {
        height: 1885px;
    }

    .menu-background-right {
        height: 1115px;
        row-gap: 5%;
    }

    .menu-img > img {
        height: 680px;
    }

    #contact-container {
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
    }

    #contact-us-container-left, #contact-us-container-right {
        width: 75%;
        height: 900px;
    }

    .contact-us > h2 {
        font-size: 250%;
    }

    #contact-us-right > h2 {
        font-size: 270%;
    }

    #fname,
    #lname,
    #email,
    #textarea {
    margin: 20px;
    font-size: 220%;
    color: #012615;
    }

    label {
        font-size: 28px;
    }

    #textarea {
        display: block;
        margin: 0 auto;
    }

    .submit-button {
        display: block;
        margin: 0 auto;
        font-size: 30px;
    }
    
    #contact-us-right > p {
        font-size: 26px;
        line-height: 1.75rem;
    }

    #footer-group {
        font-size: 26px;
        width: 1024px;
    }
    
    #social-media {
        font-size: 26px;
    }

}

/* For medium screens (tablets, large phones, landscape view 768px and down)*/
@media only screen and (max-width: 768px) {

    header {
        font-size: 22px;
    }

    .navbar {
        padding-left: 80px;
        padding-top: 20px;
    }

    .navbar > li {
        text-align: center;
        line-height: 2.25rem;
    }

    #hero-stripes {
        width: 880px;
    }

    #hero-image {
        width: 100%;
    }

    .tagline {
        font-size: 140%;
    }

    .button {
        font-size: 22px;
    }

    #business-ethos {
        width: 820px;
    }

    #business-ethos h2 {
        font-size: 230%;
    }

    .about-p {
        font-size: 155%;
        line-height: 3rem;
    }

    .ingredients-p {
        font-size: 155%;
        line-height: 3rem;
    }

    .eat-p {
        font-size: 155%;
        line-height: 3rem;
    }

    #stripes-menu {
        width: 865px;
        height: 3370px;
    }

    #stripes-contact {
        width: 865px;
        height: 1920px;
    }
    
    .menu-background-left, .menu-background-right {
        width: 80%;
    }

    .menu-headings {
        font-size: 250%;
    }

    .menu-items, .menu-items-toppings, .menu-items-prices, .menu-items-coffee {
        font-size: 190%;
    }

    .menu-items em, .menu-items-prices em, .extra-info {
        font-size: 24px;
    }

    .menu-background-left {
        height: 1616px;
    }

    .menu-background-right {
        height: 970px;
        row-gap:5%;
    }

    .menu-img > img {
        height: 600px;
    }

    #contact-us-container-left, #contact-us-container-right {
        width: 80%;
    }
    
    .contact-us > h2 {
        font-size: 250%;
    }

    #contact-us-container-right {
        height: 800px;
    }

    #contact-us-right > h2 {
        font-size: 250%;
    }

    #fname,
    #lname,
    #email,
    #textarea {
    margin: 20px;
    font-size: 190%;
    color: #012615;
    }

    label {
        font-size: 26px;
    }

    #textarea {
        display: block;
        margin: 0 auto;
    }

    .submit-button {
        display: block;
        margin: 0 auto;
        font-size: 28px;
    }
    
    #contact-us-right > p {
        font-size: 24px;
        line-height: 1.75rem;
    }

    #footer-group {
        font-size: 24px;
        width: 860px;
    }
    
    #social-media {
        font-size: 26px;
    }

}

/*For small screens (phones in portrait mode, 480px - 320px) */
@media only screen and (max-width: 480px) and (min-width: 320px) {
    
    header {
        font-size: 20px;
        width: 500px;
    }

    .navbar {
        padding-left: 35px;
        padding-top: 20px;
    }

    .navbar > li {
        text-align: center;
        line-height: 2.1rem;
    }

    #hero-stripes {
        width: 740px;
    }

    #hero-image {
        width: 550px;
    }

    .tagline {
        font-size: 150%;
    }

    .button {
        font-size: 24px;
    }

    #business-ethos {
        width: 660px;
    }

    .ethos-group {
        width: 660px;
    }

    .about-us {
        padding: 60px;
    }

    .about-p {
        font-size: 140%;
        line-height: 3rem;
    }

    .about-image img {
        height:500px;
        width: 390px;
    }

    .ingredients {
        padding: 60px;
    }

    .ingredients-p {
        font-size: 140%;
        line-height: 3rem;
    }

    .ingredients-image img {
        height:500px;
        width: 390px;
    }

    .eat {
        padding: 60px;
    }

    .eat-p {
        font-size: 140%;
        line-height: 3rem;
    }

    .eat-image img {
        height:500px;
        width: 390px;
    }

    #stripes-menu {
        width: 740px;
        height: 3650px;
    }

    #stripes-contact {
        width: 740px;
        height: 1980px;
    }

    .menu-headings {
        font-size: 250%;
    }

    .menu-items-toppings {
        line-height: 2em;
    }

    .menu-items-toppings, .menu-items-coffee {
        font-size: 190%;
    }

    
    .menu-items, .menu-items-prices {
        font-size: 200%;
    }

    .menu-items em, .menu-items-prices em, .extra-info {
        font-size: 26px;
    }


    .menu-background-left {
        height: 1780px;
    }

    .menu-background-right {
        height: 1080px;
        row-gap: 5%;
    }

    .menu-background-left, .menu-background-right {
        width: 90%;
    }

    .menu-img > img {
        height: 550px;
    }
    
    #contact-us-container-left, #contact-us-container-right {
        width: 80%;
        height: 880px;
    }

    #fname, #lname, #email {
        margin-left: 90px;
    }

    .submit-button {
        font-size: 26px;
    }

    #contact-us-right > p {
        font-size: 26px;
        line-height: 1.9rem;
    }

    #footer-group {
        font-size: 20px;
        width: 700px;
    }

}

