* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    font-family: Inter,system-ui,sans-serif;
    color: #213018;
    background: #fbf7ea
}

img {
    max-width: 100%;
    display: block
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px clamp(18px,4vw,56px);
    background: rgba(251,247,234,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid #e5dcc1
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: #213018;
    font-weight: 800
}

    .brand img {
        width: 62px;
        height: 62px;
        object-fit: contain
    }

.nav {
    display: flex;
    align-items: center;
    gap: 24px
}
    .nav .button {
        color: #ffffff;
    }
    .nav a {
        color: #213018;
        text-decoration: none;
        font-weight: 600
    }

.nav-toggle {
    display: none
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 20px;
    border-radius: 999px;
    background: #2f451f;
    color: #fff;
    text-decoration: none;
    border: 0;
    font-weight: 800;
    box-shadow: 0 12px 28px rgba(47,69,31,.2);
    cursor: pointer
}

    .button.small {
        padding: 10px 16px
    }

    .button.ghost {
        background: transparent;
        color: #2f451f;
        border: 2px solid #2f451f;
        box-shadow: none
    }

.hero {
    min-height: 78vh;
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: 40px;
    align-items: center;
    padding: clamp(60px,8vw,110px) clamp(18px,5vw,72px);
    background: linear-gradient(115deg,rgba(33,48,24,.82),rgba(33,48,24,.45)),url('thatched.png?auto=format&fit=crop&w=1800&q=80') center/cover;
    color: #fff
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .78rem;
    font-weight: 800;
    color: #caa847
}

h1, h2, h3 {
    font-family: 'Libre Baskerville',Georgia,serif;
    line-height: 1.08
}

h1 {
    font-size: clamp(2.35rem,6vw,5.8rem);
    max-width: 980px;
    margin: .2em 0
}

h2 {
    font-size: clamp(1.9rem,4vw,3.2rem);
    margin: .2em 0
}

.lead {
    font-size: clamp(1.05rem,1.6vw,1.28rem);
    max-width: 760px;
    line-height: 1.7
}

.actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 28px
}

.hero-card, .panel, .card, form {
    background: #fff9e8;
    color: #213018;
    border: 1px solid #e2d3ad;
    border-radius: 28px;
    padding: 28px;
    box-shadow: 0 20px 45px rgba(33,48,24,.16)
}

    .hero-card ul {
        padding-left: 20px;
        line-height: 2
    }

.trust-strip {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 1px;
    background: #d9c78f
}

    .trust-strip div {
        background: #fff9e8;
        padding: 28px;
        text-align: center
    }

    .trust-strip strong {
        display: block;
        font-size: 2rem;
        color: #2f451f
    }

    .trust-strip span {
        font-weight: 700
    }

.section, .split, .quote, .contact {
    padding: clamp(56px,7vw,96px) clamp(18px,5vw,72px)
}

.section-heading {
    max-width: 760px;
    margin-bottom: 34px
}

.cards {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 22px
}

.card p, .split p, .contact p {
    line-height: 1.75;
    color: #4c573f
}

.split {
    display: grid;
    grid-template-columns: 1fr .8fr;
    gap: 36px;
    align-items: center;
    background: #eff0dd
}

.text-link {
    color: #2f451f;
    font-weight: 900
}

.panel ol {
    line-height: 2
}

.warm {
    background: #213018;
    color: #fff
}

    .warm .eyebrow {
        color: #e2c15a
    }

.gallery {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 18px
}

    .gallery div {
        min-height: 220px;
        border-radius: 26px;
        background: linear-gradient(135deg,#6f7d32,#caa847);
        display: flex;
        align-items: end;
        padding: 22px;
        font-weight: 900;
        color: #fff
    }

.quote {
    text-align: center;
    background: #fff9e8
}

    .quote blockquote {
        font-family: 'Libre Baskerville',Georgia,serif;
        font-size: clamp(1.6rem,3vw,2.7rem);
        max-width: 900px;
        margin: 0 auto 16px
    }

.contact {
    display: grid;
    grid-template-columns: .8fr 1fr;
    gap: 40px;
    align-items: start
}

form {
    display: grid;
    gap: 16px
}

label {
    display: grid;
    gap: 8px;
    font-weight: 800
}

input, textarea {
    width: 100%;
    border: 1px solid #d5c9a7;
    border-radius: 16px;
    padding: 14px;
    font: inherit;
    background: #fff
}

footer {
    text-align: center;
    padding: 28px;
    background: #17220f;
    color: #fff
}

@media (max-width: 820px) {
    .nav-toggle {
        display: block;
        border: 1px solid #cfc199;
        background: #fff9e8;
        border-radius: 999px;
        padding: 10px 14px;
        font-weight: 800
    }

    .nav {
        position: absolute;
        left: 18px;
        right: 18px;
        top: 88px;
        display: none;
        flex-direction: column;
        align-items: stretch;
        background: #fff9e8;
        border: 1px solid #e2d3ad;
        border-radius: 22px;
        padding: 18px
    }

        .nav.open {
            display: flex
        }

    .hero, .split, .contact {
        grid-template-columns: 1fr
    }

    .trust-strip, .cards, .gallery {
        grid-template-columns: 1fr
    }

    .hero {
        min-height: auto
    }

    .brand span {
        display: none
    }
}
