:root{
    --primary: #4D693A;
    --secondary: #C1790E;
    --accent: #801A1B;
    --primary-dark: #264014;
    --primary-light: #C9D7C0;
    --secondary-light: #CFB691;
    --page-background: #FFFAFA;
    --primary-text: #1B1E18;
    --secondary-text: #2F332D;
    --divider: #C4BEB5;

    --page-title-background: linear-gradient(90deg, rgba(207,182,145,0) 0%, rgba(207,182,145,.2) 50%, rgba(207,182,145,.75) 100%);

    --success: #cce5d4;
    --success-dark: #165016;
    --info: #cce4f6;
    --info-dark: #0a4876;
    --warning: #fde8cd;
    --warning-dark: #7a3e00;
    --danger: #f3d1d6;
    --danger-dark: #6e1c22; 

    --link: #911f43;
    --link-hover: #801A1B;
    --link-light: #f5f1f1;
    --link-light-hover: #FFF;
    --menu-link: #1B1E18;
    --menu-link-hover: #801A1B;

    --primary-typography: 'Noto Sans', Arial, Helvetica, sans-serif;
    --heading-typography: 'Cormorant Unicase', 'Times New Roman', Times, serif;
}

/* Noto Sans - Google Fonts */
/* noto-sans-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Noto Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/noto-sans/noto-sans-v39-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Noto Sans';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/noto-sans/noto-sans-v39-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Noto Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/noto-sans/noto-sans-v39-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Noto Sans';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/noto-sans/noto-sans-v39-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* Cormorant Unicase - Google Fonts */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Cormorant Unicase';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/cormorant-unicase/cormorant-unicase-v24-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Cormorant Unicase';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/cormorant-unicase/cormorant-unicase-v24-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

*{
    box-sizing: border-box;
    position: relative;
}
body{
    background-color: var(--page-background);
    color: var(--primary-text);
    font-family: var(--primary-typography);
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
#site-body{
    flex: 1;
}
h1, h2, h3, h4, h5, h6{
    font-family: var(--heading-typography);
    line-height: 1.6;
    margin: 0;
    padding: 0 0 1rem;
}
h1{
    font-size: 3.5rem;
}
h2{
    font-size: 2.95rem;
}
h3{
    font-size: 2.5rem;
}
h4, h5, h6{
    font-size: 2rem;
}
p, li{
    margin: 0;
    line-height: 1.6;
    padding: 0 0 0.75rem;
}
strong, b{
    font-weight: 700;
}
em, i{
    font-style: italic;    
}
img{
    vertical-align: bottom;
}
figure{
    margin: 0;
}
a{
    color: var(--link);
}
a:hover{
    color: var(--link-hover);
}

.container{ 
    max-width: 1650px;
    width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}
.page-container{
    padding-top: 4rem;
    padding-bottom: 4rem;
    display: flex;
    gap: 5rem;
    flex-direction: column;
}

.bg-primary{
    background-color: var(--primary);
}
.bg-primary-dark{
    background-color: var(--primary-dark);
}
.bg-primary-light{
    background-color: var(--primary-light);
}
.bg-secondary{
    background-color: var(--secondary);
}
.bg-secondary-light{
    background-color: var(--secondary-light);
}
.bg-accent{
    background-color: var(--accent);
}
.bg-white{
    background-color: #FFF;
}
.bg-black{
    background-color: #000;
}
.fg-primary{
    color: var(--primary);
}
.fg-primary-dark{
    color: var(--primary-dark);
}
.fg-primary-light{
    color: var(--primary-light);
}
.fg-secondary{
    color: var(--secondary);
}
.fg-secondary-light{
    color: var(--secondary-light);
}
.fg-accent{
    color: var(--accent);
}
.fg-white{
    color: #FFF;
}
.fg-black{
    color: #000;
}
.text-primary{
    color: var(--primary-text);
}
.text-secondary{
    color: var(--secondary-text);
}

/* Header */
#site-header{
    padding: 2rem 0;
}
#site-header .container{ 
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
}
#site-header #logo{
    max-width: 250px;
}
#site-header #logo a{
    display: block;
}
#site-header #logo img{
    width: 100%;
}
/* Menu */
#site-header #site-nav .menu{
    display: flex;
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 1.2rem;
    font-family: var(--heading-typography);
}
#site-header #site-nav .menu li{
    padding: 0;
}
#site-header #site-nav .menu a{
    color: var(--menu-link);
    text-decoration: none;
    display: block;
    width: fit-content;
    padding: 8px 5px;
    position: relative;
}
#site-header #site-nav .menu a::after{
    content: "";
    position: absolute;
    width: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 2px;
    background-color: var(--menu-link-hover);
    transition: width .2s ease-in-out;
}
#site-header #site-nav .menu a:hover, #site-header #site-nav .menu .selected{
    color: var(--menu-link-hover);
}
#site-header #site-nav .menu a:hover::after, #site-header #site-nav .menu .selected::after{
    width: 100%;
}

/* Footer */
#site-footer{
    text-align: center;
    padding: 3rem 0;
}
#site-footer #socials{
    padding: 0 0 1.25rem;
}
#site-footer #socials .networks{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.5rem;
    justify-content: center;
}
#site-footer #socials .network{ 
    padding: 0;
}
#site-footer #socials .networks a{
    text-decoration: none;
    font-size: 1.25rem;
    display: block;
    width: 2.2rem;
    height: 2.2rem;
    line-height: 2.2rem;
    text-align: center;
}
#site-footer #socials .networks .label{
    display: none;
}

/* Single Page */
#site-body .page-title{ 
    background: var(--secondary-light);
    background: var(--page-title-background);
    padding: 5.5rem 0.5rem;
}
#site-body .page-title .title{ 
    font-size: 4.25rem;
    margin: 0;
    padding: 0;
}

/* Home Page */
#hero-banner{
    background: url('../images/stock/hero-banner.jpg') center no-repeat;
    background-size: cover;
    height: 60vh;
    display: flex;
    align-items: flex-end;
    padding: 3rem 3.5rem;
    border-radius: 50px;
}
#hero-banner .hero-title{
    color: #FFF;
    font-size: 4rem;
    padding: 0 0 1rem;
}
#hero-banner .hero-subtitle{
    color: #EFEFEF;
    font-size: 1.75rem;
    padding: 0;
}
.front-page .welcome{ 
    padding: 0 1rem;
}
.front-page .welcome p{
    font-size: 1.2rem;
    text-align: center;
}
.front-page .intro{
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    align-items: center;
}
.front-page .intro .image{
    width: 35%; 
}
.front-page .intro .image img{ 
    width: 100%;
}
.front-page .intro .content{ 
    flex: 1;
}
.front-page .menus{
    gap: 3rem;
    display: flex;
    flex-wrap: wrap;
}
.front-page .menus .menu{
    width: calc( 50% - 1.5rem );
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}
.front-page .menus .menu .image, .front-page .menus .menu .image img{ 
    width: 220px;
}
.front-page .menus .menu .content{
    flex: 1;
    align-self: center;
}
.front-page .menus .menu .content .menu-title{ 
    font-size: 2rem;
    color: var(--secondary);
}
.front-page .menus .menu .content .menu-button{
    display: block;
    width: fit-content;
    padding: 1rem 1.5rem;
    margin: 1rem 0 0;
    background-color: var(--secondary-light);
    color: var(--primary-text);
    text-decoration: none;
    transition: all .2s ease;
    border-radius: 5px;
}
.front-page .menus .menu .content .menu-button:hover{
    color: #FFF;
    background-color: #000;
}
.front-page .map iframe, .contact-page .map iframe{ 
    width: 100%;
    height: 450px;
}

/* Menu Pages */
.menu-page .menu-list .menu{
    display: flex;
    gap: 50px 30px;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    list-style: none;
}
.menu-page .menu-list .menu .item{
    width: calc( ( 100% / 3 ) - 20px );
}
.menu-page .menu-list .menu .item .image{
    border: solid 5px #FFF;
    border-radius: 20px;
    box-shadow: 0 5px 15px rgba(0,0,0,.45);
    position: relative;
    padding-bottom: 62.5%;
    overflow: hidden;
    margin: 0 0 1.5rem;
}
.menu-page .menu-list .menu .item img{ 
    object-fit: cover;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    transition: all .25s ease-in-out;
    transform-origin: center;
    transform: scale(1);
}
.menu-page .menu-list .menu .item:hover img{
    transform: scale(1.2);
}
.menu-page .menu-list .menu .item .data{
    padding: 0 1rem;
}
.menu-page .menu-list .menu .item .item-head{
    display: flex;
    flex-wrap: wrap;
}
.menu-page .menu-list .menu .item .item-name{
    font-size: 1.6rem;
    color: var(--primary);
    font-weight: 400;
    flex: 1;
}
.menu-page .menu-list .menu .item .price{
    width: fit-content;
    height: fit-content;
    padding: 10px 15px;
    text-align: right;
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 1.6;
    color: #FFF;
    background-color: var(--primary);
}
.menu-page .menu-list .menu .item .product-name{
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--secondary-text);
}
.menu-page .menu-list .menu .item .suitable-for{
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    gap: 10px 8px;
}
.menu-page .menu-list .menu .item .suitable-for li{
    border-radius: 50%;
    width: 42px;
    height: 42px;
    text-align: center;
    line-height: 42px;
    padding: 0;
    font-size: 0.875rem;
    font-weight: 700;
}
.menu-page .menu-list .menu .item .suitable-for .vegan{
    background-color: #b3f19c;
}
.menu-page .menu-list .menu .item .suitable-for .vegetarian{
    background-color: #9bd885;
}
.menu-page .menu-list .menu .item .suitable-for .gluten-free{
    background-color: #f1e49c;
}
.menu-page .menu-list .menu .item .price-notes{
    padding: 0.5rem 0.8rem;
    margin: 0 0 0.75rem;
    background-color: var(--secondary);
    color: #FFF;
    border-radius: 5px;
    font-weight: 700;
}

/* Contact Page */
.contact-details{ 
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
    margin: 0 0 3rem; 
    padding: 0;
    list-style: none;
}
.contact-details li{
    width: calc( ( 100% / 3 ) - 20px );
    padding: 70px 40px;
    background-color: var(--accent);
    color: #FFF; 
}
.contact-details .contact-icon{
    font-size: 3rem;
    padding: 0 0 1.5rem;
}
.contact-details .contact-title{
    font-size: 1.15rem;
    font-weight: 400;
    font-family: var(--heading-typography);
    padding: 0 0 1rem;
    line-height: 1.6;
}
.contact-details .info{ 
    font-size: 1.3rem;
    font-weight: 700;
}
.contact-details .info a{
    color: var(--link-light);
}
.contact-details .info a:hover{
    color: var(--link-light-hover);
}
.contact-details .info .msg{ 
    text-decoration: none;
}
.contact-details .info .msg .label{
    display: none; 
}
.contact-details .info .msg .network-icon{
    font-size: 1.6rem;
    padding: 0 0.5rem 0 0;
}
.contact-form{ 
    padding: 50px; 
    border-radius: 30px; 
    background-color: #FFF; 
    margin: 0 auto; 
    max-width: 1100px;
    width: 100%;
}
.contact-form .fields-two{
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
}
.contact-form .fields-two .field{
    width: calc( 50% - 15px ); 
}
.contact-form .label{ 
    font-family: var(--heading-typography);
    font-weight: 700;
    display: block; 
    padding: 0 0 0.7rem;
}
.contact-form input[type="email"], .contact-form input[type="text"], .contact-form textarea{
    font-family: var(--primary-typography);
    line-height: 1.4;
    font-size: 1rem;
    padding: 10px 12px;
    background-color: #F8F8F8;
    border: solid 1px #CCC;
    border-radius: 5px;
    width: 100%;
    outline: none;
}
.contact-form input[type="email"]:active, .contact-form input[type="email"]:focus, .contact-form input[type="text"]:active, .contact-form input[type="text"]:focus, .contact-form textarea:active, .contact-form textarea:focus{
    background-color: #FFF;
    outline: solid 1px var(--primary);
    box-shadow: 0 1px 3px rgba(77, 105, 58, .5);
}
.contact-form .iti{
    width: 100%;
}
.contact-form textarea{ 
    height: 225px;
    resize: none;
}
.contact-form .form-row .field{
    padding: 0 0 1rem;
}
.contact-form .captcha-field{ 
    max-width: 350px; 
}
.contact-form .buttons .button-field{
    font-size: 1.3rem;
    font-family: var(--heading-typography);
    padding: 1rem 2rem;
    border: none;
    border-radius: 5px;
    transition: all .2s ease;
    cursor: pointer;
}
.contact-form .buttons .primary-button{
    background-color: var(--primary);
    color: #FFF;
}
.contact-form .buttons .primary-button:hover{
    background-color: #000;
    color: #FFF;
}
.contact-form .buttons .primary-button:active, .contact-form .buttons .primary-button:focus{
    background-color: #FCFCFC;
    color: var(--primary-dark);
}
.contact-form .buttons .secondary-button{
    background-color: var(--secondary);
    color: #FFF;
}
.contact-form .buttons .secondary-button:hover{
    background-color: #000;
    color: #FFF;
}
.contact-form .buttons .secondary-button:active, .contact-form .buttons .secondary-button:focus{
    background-color: var(--secondary-light);
    color: #000;
}
/* Notices */
.contact-form .notice{ 
    display: none; 
}
.contact-form .notice .alert{ 
    display: flex; 
    gap: 15px; 
    padding: 1rem 1.5rem; 
    border-radius: 3px; 
    border: solid 1px; 
    margin: 0 0 2rem; 
    align-items: center; 
    transition: opacity 1s ease-out; 
    opacity: 1; 
} 
.contact-form .notice .alert .icon{ 
    font-size: 1.3rem; 
    width: 2rem; 
    height: 2rem; 
    line-height: 2rem; 
    text-align: center; 
}
.contact-form .notice .alert .text{ 
    flex: 1; 
}
.contact-form .notice .alert .text p{ 
    padding: 0; 
    margin: 0; 
}
.contact-form .notice .alert.success{ 
    background-color: var(--success); 
    color: var(--success-dark); 
    border-color: var(--success-dark); 
}
.contact-form .notice .alert.error{ 
    background-color: var(--danger); 
    color: var(--danger-dark); 
    border-color: var(--danger-dark); 
}

/* Photo Galleries */
.grid{
    display: grid;
}
.galleries-page .photo-gallery{
    margin: 0 0 3rem;
    gap: 30px;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
}
.galleries-page .photo-gallery .image{
    margin: 0;
    height: 300px;
    position: relative;
    overflow: hidden;
}
.galleries-page .photo-gallery .image.main{
    grid-column: span 2;
    grid-row: span 2;
    height: 630px;
}
.galleries-page .photo-gallery .image img{ 
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    object-fit: cover;
}

/* Call to Action */
.cta{ 
    display: flex;
    flex-wrap: wrap;
    border-radius: 50px;
}
.cta.content-right{
    flex-direction: row;
}
.cta.content-bottom{
    flex-direction: column;
}
.cta .image{ 
    overflow: hidden;
    position: relative;
}
.cta.content-right .image{
    width: 450px; 
    border-radius: 50px 0 0 50px;
}
.cta.content-bottom .image{
    padding-bottom: 57.6%; 
    border-radius: 50px 50px 0 0;
}
.cta .image img{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cta .content{ 
    padding: 4rem 3rem;
    flex: 1;
    align-self: center;
}
.cta .content .cta-button{
    display: block;
    width: fit-content;
    font-size: 1.3rem;
    font-family: var(--heading-typography);
    padding: 1rem 2rem;
    margin: 1.5rem 0 0;
    border: none;
    border-radius: 5px;
    transition: all .2s ease;
    cursor: pointer;
    text-decoration: none;
    background-color: #FFF;
    color: var(--accent);
}
.cta .content .cta-button:hover{
    background-color: #000;
    color: #FFF;
}

/* Responsive */
@media only screen and (max-width: 1024px) and (min-width: 801px){
    h1{
        font-size: 3.1rem;
    }
    h2{
        font-size: 2.5rem;
    }
    h3{
        font-size: 2rem;
    }
    h4, h5, h6{
        font-size: 1.4rem;
    }
    #site-header .container{ 
        flex-direction: column;
        align-items: center;
    }
    #site-header #logo{ 
        padding: 0 0 1.5rem;
    }
    #site-body .page-title .title{
        font-size: 3.5rem;
    }
    #hero-banner .hero-title{
        font-size: 3rem;
    }
    #hero-banner .hero-subtitle{
        font-size: 1.3rem;
    }
    .front-page .intro{
        flex-direction: column;
    }
    .front-page .intro .image{
        width: 65%;
    }
    .front-page .menus{
        flex-direction: column;
    }
    .front-page .menus .menu{
        width: 100%;
    }
    .cta.content-right{
        flex-direction: column;
    }
    .cta.content-right .image{
        padding-bottom: 57.6%;
        width: 100%;
    }
    .contact-details{
        flex-direction: column;
    }
    .contact-details li{
        width: 100%;
        padding: 48px;
    }
    .menu-page .menu-list .menu .item{
        width: calc( 50% - 15px );
    }
    .galleries-page .photo-gallery{
        gap: 30px;
        grid-template-columns: repeat(2, 1fr);
        width: 100%;
    }
    .galleries-page .photo-gallery .image{
        height: 250px;
    }
    .galleries-page .photo-gallery .image.main{
        grid-column: span 1;
        grid-row: span 1;
        height: unset;
    }
}
@media only screen and (max-width: 800px){
    h1{
        font-size: 2.75rem;
    }
    h2{
        font-size: 2.35rem;
    }
    h3{
        font-size: 1.8rem;
    }
    h4, h5, h6{
        font-size: 1rem;
    }
    #site-header .container{
        flex-direction: column;
        align-items: center;
    }
    #site-header #logo{ 
        padding: 0 0 1.5rem;
    }
    #site-header #site-nav{
        width: 100%;
    }
    #site-header #site-nav .menu{
        flex-direction: column;
        text-align: center;
        width: 100%;
    }
    #site-body .page-title .title{
        font-size: 3rem;
    }
    #hero-banner{
        height: unset;
        padding: 185px 2.35rem 3rem;
    }
    #hero-banner .hero-title{
        font-size: 2.6rem;
    }
    #hero-banner .hero-subtitle{
        font-size: 1.1rem;
    }
    .front-page .intro{
        flex-direction: column;
    }
    .front-page .intro .image{
        width: 100%;
    }
    .front-page .menus{
        flex-direction: column;
        gap: 3rem;
    }
    .front-page .menus .menu{
        width: 100%;
        flex-direction: column;
    }
    .cta .content{
        padding: 3rem 2rem 3.5rem;
    }
    .cta.content-right{
        flex-direction: column;
    }
    .cta.content-right .image{
        padding-bottom: 57.6%;
        width: 100%;
    }
    .contact-details{
        flex-direction: column;
    }
    .contact-details li{
        width: 100%;
        padding: 48px;
    }
    .menu-page .menu-list .menu .item{
        width: 100%;
    }
    .contact-form{
        padding: 40px 28px;
    }
    .contact-form .fields-two{
        flex-direction: column;
        gap: 0;
    }
    .contact-form .fields-two .field{
        width: 100%;
    }
    .contact-details .contact-icon{
        font-size: 2.3rem;
    }
    .galleries-page .photo-gallery{
        margin: 0 0 3rem;
        gap: 30px;
        grid-template-columns: 1fr;
        width: 100%;
    }
    .galleries-page .photo-gallery .image{
        height: unset;
    }
    .galleries-page .photo-gallery .image.main{
        grid-column: 1;
        grid-row: 1;
        height: unset;
    }
    .galleries-page .photo-gallery .image img{
        position: relative;
    }
}