@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');

:root{
    --green:#123629;
    --green-dark:#0d281e;
    --gold:#b48a36;
    --cream:#f8f3ea;
    --white:#ffffff;
    --text:#1f2c27;
    --gray:#6f746f;
    --border:#e7dfd1;
    --max-width:1180px;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:var(--cream);
    color:var(--text);
    line-height:1.7;
}

img{
    display:block;
    max-width:100%;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

h1,
h2,
h3,
h4{
    font-family:'Cormorant Garamond',serif;
    font-weight:500;
    line-height:1;
}

h1{
    font-size:clamp(4rem,9vw,7rem);
}

h2{
    font-size:clamp(2.8rem,6vw,4.8rem);
}

h3{
    font-size:2rem;
}

p{
    font-size:1.05rem;
    color:var(--gray);
}

.eyebrow{
    color:var(--gold);
    text-transform:uppercase;
    letter-spacing:.18em;
    font-size:.8rem;
    font-weight:700;
    margin-bottom:18px;
}

.container{
    width:min(92%,var(--max-width));
    margin:auto;
}

section{
    padding:80px 0;
}

/* HEADER */

.site-header{
    background:var(--cream);
    border-bottom:1px solid var(--border);
    position:sticky;
    top:0;
    z-index:999;
}

.nav-container{
    width:min(94%,1280px);
    margin:auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    height:95px;
}

.logo-link{
    display:flex;
    align-items:center;
    gap:20px;
}

.site-logo{
    width:100px;
}

.logo-text{
    font-family:'Cormorant Garamond',serif;
    font-size:1.7rem;
    line-height:1.05;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:50px;
}

.main-nav a{
    font-size:.82rem;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-weight:600;
    transition:.3s;
}

.main-nav a:hover{
    color:var(--gold);
}

.nav-cta{
    border:1px solid var(--green);
    padding:15px 30px;
    transition:.3s;
}

.nav-cta:hover{
    background:var(--green);
    color:white;
}

/* HERO */

.hero{
    text-align:center;
    padding:65px 0 80px;
}

.hero-logo{
    width:170px;
    margin:auto auto 35px;
}

.hero h1{
    margin-bottom:25px;
}

.hero-sub{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.7rem,3vw,2.7rem);
    max-width:760px;
    margin:0 auto 28px;
}

.hero p{
    max-width:650px;
    margin:auto;
}

.button-row{
    margin-top:40px;
    display:flex;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
}

/* PAGE HERO */

.page-hero{
    text-align:center;
    padding:18px 0 28px;
}

.page-hero h1{
    font-size:clamp(2.8rem,5vw,4.4rem);
}

.page-hero .hero-sub{
    font-size:clamp(1.35rem,2.4vw,2rem);
    max-width:820px;
    margin:20px auto 0;
}

/* OVERLAY HERO */

.hero-overlay{
    background-image:
        linear-gradient(
            rgba(248,243,234,.76),
            rgba(248,243,234,.76)
        ),
        url("images/restaurant.jpg");
    background-size:cover;
    background-position:center;
    text-align:center;
    padding:90px 0;
}

.hero-overlay h1{
    font-size:clamp(4rem,8vw,6.5rem);
}

.hero-overlay .hero-sub{
    font-size:clamp(2rem,3vw,3rem);
}

.hero-overlay p{
    max-width:800px;
    margin:30px auto;
}

/* BUTTONS */

.btn{
    display:inline-block;
    padding:16px 34px;
    font-size:.82rem;
    text-transform:uppercase;
    letter-spacing:.15em;
    font-weight:700;
    transition:.3s;
}

.btn-primary{
    background:var(--green);
    color:white;
}

.btn-primary:hover{
    background:var(--green-dark);
}

.btn-secondary{
    border:1px solid var(--green);
}

.btn-secondary:hover{
    background:white;
}

/* IMAGE */

.full-image{
    width:100%;
    height:500px;
    object-fit:cover;
    border-top:1px solid var(--gold);
}

/* SPLIT */

.split{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:120px;
    align-items:center;
}

/* CARD */

.card{
    background:white;
    padding:55px;
    border:1px solid var(--border);
}

.card h3{
    margin-bottom:20px;
}

.card p{
    margin-bottom:18px;
}

.card-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}

.service-card{
    position:relative;
    min-height:300px;
    overflow:hidden;
    background:white;
    cursor:pointer;
}

.service-card::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:42%;
    background-image:var(--service-image);
    background-size:cover;
    background-position:center top;
    opacity:0;
    transform:translateY(100%);
    transition:.35s ease;
    z-index:0;
    border-top:1px solid var(--border);
}

.service-card h3,
.service-card p{
    position:relative;
    z-index:2;
}

.service-card:hover::before{
    opacity:1;
    transform:translateY(0);
}

.service-card:hover{
    padding-bottom:150px;
}

.price{
    font-family:'Cormorant Garamond',serif;
    font-size:4.5rem;
    color:var(--gold);
    line-height:1;
}

/* SERVICE LIST */

.service-list li{
    padding:14px 0;
    border-bottom:1px solid var(--border);
}

/* DASHBOARD */

.dashboard{
    border:1px solid var(--border);
    background:white;
    padding:18px;
}

.dashboard img{
    width:100%;
}

/* ABOUT */

.about{
    display:grid;
    grid-template-columns:450px 1fr;
    gap:90px;
    align-items:start;
}

.about img{
    border:1px solid var(--border);
}

/* CTA */

.final-cta{
    background:var(--green);
    color:white;
    text-align:center;
}

.final-cta h2{
    color:white;
}

.final-cta p{
    color:#d7ddd8;
    max-width:650px;
    margin:24px auto 34px;
}

/* FOOTER */

.site-footer{
    background:var(--green-dark);
    color:#cfd7d1;
    text-align:center;
    padding:28px;
    font-size:.8rem;
    letter-spacing:.12em;
    text-transform:uppercase;
}

/* RESPONSIVE */

@media(max-width:900px){

    .split{
        grid-template-columns:1fr;
        gap:55px;
    }

    .card-grid{
        grid-template-columns:1fr;
    }

    .about{
        grid-template-columns:1fr;
    }

    .nav-container{
        height:auto;
        padding:25px 0;
        flex-direction:column;
        gap:25px;
    }

    .main-nav{
        flex-wrap:wrap;
        justify-content:center;
        gap:22px;
    }

    section{
        padding:80px 0;
    }

    .full-image{
        height:350px;
    }

}

@media(max-width:600px){

    h1{
        font-size:3.3rem;
    }

    h2{
        font-size:2.7rem;
    }

    .hero{
        padding:70px 0 60px;
    }

    .site-logo{
        width:75px;
    }

    .logo-text{
        font-size:1.2rem;
    }

    .card{
        padding:35px;
    }

    .price{
        font-size:3.6rem;
    }

}