:root{
    --bg:#f7f3eb;
    --white:#ffffff;
    --green:#063b34;
    --green2:#0b4a42;
    --gold:#d39a4c;
    --gold2:#efc37a;
    --text:#10201d;
    --muted:#66736f;
    --line:rgba(6,47,42,.11);
    --shadow:0 28px 80px rgba(6,47,42,.16);
    --shadow-soft:0 16px 45px rgba(6,47,42,.08);
    --max:1480px;
}

*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.6;
}

a{
    color:inherit;
    text-decoration:none;
}

img{
    max-width:100%;
    height:auto;
    display:block;
}

main.content,
.site-footer .container{
    width:min(var(--max),calc(100% - 48px));
    margin:0 auto;
}

main.content{
    padding:48px 0 90px;
}

/* H1 */

body.is-home main.content > h1{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
}

body.is-page main.content > h1{
    max-width:1100px;
    margin:0 auto 34px;
    color:var(--green);
    font-size:clamp(42px,5vw,74px);
    font-weight:900;
    line-height:.95;
    letter-spacing:-0.055em;
}

/* General content */

main.content section:not(.hero):not(.features){
    max-width:1100px;
    margin:32px auto;
    padding:42px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    box-shadow:var(--shadow-soft);
}

main.content h2,
main.content h3{
    color:var(--green);
    letter-spacing:-.04em;
}

main.content h2{
    font-size:clamp(34px,4vw,54px);
    line-height:1.05;
    margin-bottom:20px;
}

main.content h3{
    font-size:30px;
    margin-bottom:18px;
}

main.content p,
main.content li{
    color:var(--muted);
    font-size:18px;
}

main.content p{
    margin-bottom:16px;
}

main.content strong{
    color:var(--green);
}

main.content ul{
    list-style:none;
    padding:0;
}

main.content ul li{
    position:relative;
    padding-left:32px;
    margin-bottom:14px;
}

main.content ul li:before{
    content:'';
    position:absolute;
    left:4px;
    top:12px;
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 0 6px rgba(211,154,76,.14);
}

/* Buttons */

.btn,
button[type='submit'],
input[type='submit']{
    min-height:56px;
    padding:0 28px;
    border:0;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--gold);
    color:#24180a;
    font-family:inherit;
    font-size:16px;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 14px 34px rgba(211,154,76,.24);
    transition:.18s ease;
}

.btn-primary{
    background:linear-gradient(135deg,var(--gold) 0%,var(--gold2) 100%);
    color:#24180a;
}

.btn-secondary{
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.45);
    box-shadow:none;
}

.btn:hover,
button[type='submit']:hover,
input[type='submit']:hover{
    transform:translateY(-2px);
}

/* Forms */

.booking-form,
.contact-form{
    max-width:760px;
    margin-top:28px;
    padding:36px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    box-shadow:var(--shadow-soft);
}

.booking-form label,
.contact-form label{
    display:block;
    margin-bottom:8px;
    color:var(--green);
    font-size:14px;
    font-weight:900;
}

.booking-form input,
.booking-form textarea,
.contact-form input,
.contact-form textarea{
    width:100%;
    min-height:54px;
    margin-bottom:18px;
    padding:14px 16px;
    border:1px solid rgba(6,47,42,.15);
    border-radius:15px;
    background:#fbfaf7;
    color:var(--text);
    font:inherit;
    outline:none;
}

.booking-form textarea,
.contact-form textarea{
    min-height:150px;
    resize:vertical;
}

.booking-form input:focus,
.booking-form textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus{
    border-color:var(--gold);
    background:#fff;
    box-shadow:0 0 0 4px rgba(211,154,76,.13);
}

/* Footer */

.site-footer{
    margin-top:70px;
    padding:72px 0 34px;
    background:
        radial-gradient(circle at top left,rgba(211,154,76,.16),transparent 30rem),
        linear-gradient(135deg,#102d28 0%,#071b18 100%);
    color:#fff;
}

.footer-columns{
    display:grid;
    grid-template-columns:1fr 1.3fr .8fr;
    gap:30px;
}

.footer-column{
    padding:30px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.045);
}

.footer-column h3{
    margin:0 0 14px;
    font-size:22px;
    color:#fff;
}

.footer-column p{
    margin:0;
    color:rgba(255,255,255,.72);
    font-size:16px;
}

.footer-column a{
    color:rgba(255,255,255,.72);
}

.footer-column a:hover{
    color:var(--gold2);
}

.footer-column ul{
    list-style:none;
    padding:0;
    margin:0;
}

.footer-column li{
    margin-bottom:8px;
}

.copyright{
    margin-top:34px;
    padding-top:26px;
    border-top:1px solid rgba(255,255,255,.08);
    text-align:center;
    color:rgba(255,255,255,.46);
    font-size:14px;
}

@media(max-width:1050px){

    .footer-columns{
        grid-template-columns:1fr;
    }
}

@media(max-width:680px){

    main.content,
    .site-footer .container{
        width:calc(100% - 26px);
    }

    main.content{
        padding:26px 0 64px;
    }

    body.is-page main.content > h1{
        font-size:38px;
    }

    main.content section:not(.hero):not(.features){
        padding:24px;
        border-radius:20px;
    }

    .btn,
    button[type='submit'],
    input[type='submit']{
        width:100%;
        margin-bottom:10px;
    }

    .site-footer{
        padding:50px 0 28px;
    }

    .footer-column{
        padding:24px;
        border-radius:20px;
    }
}