:root{
    --forest:#244b3a;
    --deep:#18392e;
    --ink:#26382e;
    --muted:#737c72;
    --cream:#f6f5ef;
    --line:#e2e5dc;
    --lime:#d9e6ab;
    --white:#fff;
    --orange:#c38b54
}
*{
    box-sizing:border-box
}
body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    line-height:1.6
}
a{
    color:var(--forest);
    text-underline-offset:4px
}
button,input,select,textarea{
    font:inherit
}
button,a,input,select,textarea{
    touch-action:manipulation
}
button{
    cursor:pointer
}
button:disabled{
    cursor:not-allowed;
    opacity:.5
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
    outline:3px solid #91aa59;
    outline-offset:3px
}
.site-header{
    max-width:1280px;
    margin:auto;
    padding:24px 40px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--line)
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    font-size:21px;
    font-weight:800;
    letter-spacing:2px;
    line-height:1.3
}
.brand small{
    display:block;
    font-size:8px;
    letter-spacing:2.2px;
    margin-top:5px
}
.brand-logo{
    display:block;
    width:120px;
    height:auto;
    object-fit:contain
}
@media(max-width:600px){
    .brand-logo{width:90px}
}
.brand-mark{
    position:relative;
    font-family:Georgia,serif;
    border:1px solid var(--forest);
    border-radius:50%;
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    font-size:33px;
    font-weight:400
}
.brand-mark span{
    font:11px Arial;
    position:absolute;
    right:6px;
    top:10px
}
.site-header nav{
    display:flex;
    align-items:center;
    gap:28px;
    font-size:12px
}
.site-header nav a{
    text-decoration:none
}
.site-header nav a.active{
    font-weight:bold;
    border-bottom:2px solid var(--forest)
}
.site-header .contact{
    border:1px solid var(--line);
    padding:9px 15px;
    border-radius:50px
}
.site-header form{
    margin:0
}
.text-button{
    border:0;
    background:transparent;
    color:var(--muted);
    padding:0
}
main{
    max-width:1200px;
    margin:auto;
    padding:0 40px 60px
}
.intro{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:44px 0 32px
}
.eyebrow{
    font-size:10px;
    letter-spacing:2px;
    font-weight:700;
    color:var(--forest);
    display:flex;
    align-items:center;
    gap:8px
}
.eyebrow>span{
    width:6px;
    height:6px;
    background:#7e9661;
    border-radius:50%
}
h1,h2,h3,p{
    margin-top:0
}
h1{
    font:normal 49px/1.12 Georgia,'Times New Roman',serif;
    letter-spacing:-1.5px;
    margin:14px 0 16px
}
h2{
    font:normal 25px/1.25 Georgia,'Times New Roman',serif;
    margin-bottom:10px
}
h3{
    font-size:15px;
    font-weight:600;
    margin-bottom:12px
}
p{
    color:var(--muted)
}
.intro p:last-child{
    font-size:13px;
    line-height:1.8;
    margin-bottom:0
}
.accent{
    color:var(--orange)
}
.intro-note{
    display:flex;
    align-items:center;
    gap:16px;
    margin:25px 12px 0 20px;
    font-family:Georgia,serif;
    font-size:19px
}
.intro-note .leaf{
    font:56px Georgia;
    color:#899774
}
.intro-note small{
    font:8px Arial;
    display:block;
    letter-spacing:1.6px;
    margin-top:7px;
    color:var(--muted)
}
.booking-layout{
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
    gap:28px;
    align-items:start
}
.panel{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:14px;
    padding:28px
}
.panel-heading{
    display:flex;
    align-items:center;
    gap:13px;
    border-bottom:1px solid var(--line);
    padding-bottom:22px;
    margin-bottom:24px
}
.panel-heading h2{
    font-size:23px;
    margin:0 0 5px
}
.panel-heading p{
    font-size:12px;
    margin:0
}
.step{
    width:28px;
    height:28px;
    border-radius:50%;
    background:#edf1e6;
    color:var(--forest);
    display:inline-grid;
    place-items:center;
    flex-shrink:0;
    font-size:10px;
    font-weight:bold
}
.tag{
    font-size:8px;
    letter-spacing:1px;
    padding:5px 8px;
    background:#f2f3eb;
    border:1px solid #e4e8d9;
    border-radius:4px;
    white-space:nowrap
}
.panel-heading .tag{
    margin-left:auto
}
label{
    display:block;
    font-size:12px;
    font-weight:600;
    color:#455346;
    margin-bottom:19px
}
input,select,textarea{
    width:100%;
    border:1px solid #dce1d6;
    background:#fdfdfa;
    color:var(--ink);
    padding:12px 13px;
    border-radius:7px;
    display:block;
    margin-top:7px;
    min-height:46px;
    max-width:100%
}
input::placeholder{
    color:#9a9f97;
    font-size:12px
}
input[type=checkbox]{
    width:16px;
    min-height:16px;
    height:16px;
    accent-color:var(--forest);
    margin:2px 0 0;
    flex-shrink:0
}
textarea{
    resize:vertical
}
.field-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
}
.stay-fields{
    grid-template-columns:2fr 1fr
}
small,label small{
    display:block;
    color:var(--muted);
    font-size:10px;
    font-weight:normal;
    margin-top:6px;
    line-height:1.6
}
.section-label{
    display:flex;
    align-items:center;
    gap:12px;
    margin:11px 0 21px
}
.section-label h3,.section-label h2{
    margin:0
}
.checkbox{
    display:flex;
    gap:10px;
    align-items:flex-start;
    font-size:11px;
    font-weight:normal;
    line-height:1.7
}
.button{
    display:inline-flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:13px 20px;
    min-height:46px;
    border:1px solid var(--forest);
    border-radius:7px;
    background:var(--forest);
    color:white;
    font-size:12px;
    text-decoration:none;
    font-weight:600;
    transition:background .15s
}
.button:hover{
    background:var(--deep)
}
.button.secondary{
    background:transparent;
    color:var(--forest);
    border-color:#b9c6b6
}
.button.secondary:hover{
    background:#f0f3e9
}
.full{
    width:100%
}
.secure-note{
    text-align:center;
    font-size:10px;
    margin:13px 0 0;
    color:#858d7d
}
.policy{
    margin-bottom:20px;
    border-top:1px solid var(--line);
    padding-top:16px;
    font-size:12px
}
.policy summary{
    cursor:pointer;
    color:var(--forest);
    font-weight:600
}
.policy p{
    padding-top:12px;
    margin:0;
    white-space:pre-line
}
.nature-card{
    height:278px;
    border-radius:14px;
    position:relative;
    overflow:hidden;
    background:#cad5b8;
    color:#fff
}
.sun{
    position:absolute;
    width:120px;
    height:120px;
    border-radius:50%;
    background:#e8e0b0;
    right:33px;
    top:28px
}
.mountain{
    position:absolute;
    left:-10%;
    width:130%;
    height:80%;
    border-radius:50% 80% 0 0;
    transform:rotate(-12deg)
}
.mountain.back{
    background:#7c9270;
    top:70px
}
.mountain.front{
    background:#2e543d;
    top:132px;
    transform:rotate(15deg)
}
.trees{
    position:absolute;
    right:14px;
    bottom:-52px;
    font:190px/1 Georgia;
    letter-spacing:-55px;
    color:#24432f;
    transform:scaleX(.7)
}
.nature-label{
    position:absolute;
    top:23px;
    left:24px;
    font-size:7px;
    letter-spacing:1.8px;
    color:#435a3e
}
.nature-copy{
    position:absolute;
    bottom:24px;
    left:26px
}
.nature-copy>span{
    font-size:8px;
    letter-spacing:2px;
    color:#d5e0c0
}
.nature-copy h2{
    font-size:37px;
    margin:10px 0
}
.nature-copy p{
    color:#d8e1cd;
    font-size:10px;
    margin:0
}
.summary{
    margin-top:20px;
    padding:24px
}
.summary-title{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:20px
}
.summary-title h2,.summary-title h3{
    margin:0
}
.summary>p{
    font-size:12px
}
.summary-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:12px;
    font-size:12px
}
.summary-row>span{
    color:var(--muted)
}
.total{
    border-top:1px solid var(--line);
    padding-top:17px;
    margin-top:17px;
    font-size:15px
}
.total strong{
    font-size:21px;
    font-family:Georgia,serif
}
.fine-print{
    font-size:10px;
    line-height:1.8;
    color:var(--muted)
}
.included{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    border-top:1px solid var(--line);
    padding-top:18px;
    margin-top:18px;
    font-size:9px;
    color:#647353
}
.help{
    text-align:center;
    padding:25px 10px
}
.help>span{
    font-family:Georgia,serif;
    font-size:17px
}
.help p{
    margin:8px 0 0;
    font-size:11px
}
.help a{
    font-weight:600
}
footer{
    max-width:1120px;
    border-top:1px solid var(--line);
    margin:auto;
    padding:22px 0 30px;
    display:flex;
    justify-content:space-between;
    color:var(--muted);
    font-size:10px
}
footer>span:first-child{
    font-family:Georgia,serif;
    font-style:italic;
    font-size:13px
}
.dot{
    padding:0 10px
}
.notice{
    padding:16px 19px;
    border:1px solid #e5dbb8;
    background:#fcf7e8;
    border-radius:9px;
    color:#706234;
    font-size:12px;
    margin:20px 0
}
.notice.error{
    background:#fff2ef;
    color:#953e32;
    border-color:#edc9be
}
.notice.success{
    background:#edf5e8;
    color:#3f6432;
    border-color:#d9e8ce
}
.notice ul{
    margin:6px 0 0;
    padding-left:18px
}
.narrow{
    max-width:710px;
    margin:50px auto
}
.narrow h1{
    font-size:40px
}
.narrow .panel>h2{
    margin-top:18px
}
.date-strip{
    background:var(--cream);
    padding:18px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-radius:8px;
    margin:22px 0
}
.date-strip strong{
    display:block;
    margin-top:5px
}
.date-strip small{
    font-size:9px
}
.status{
    display:inline-flex;
    border-radius:50px;
    padding:4px 10px;
    font-size:10px;
    text-transform:capitalize;
    background:#f3eedc;
    color:#897235;
    white-space:nowrap
}
.status.confirmed{
    background:#eaf2e5;
    color:#4c7240
}
.status.payment_review{
    background:#fbe8dd;
    color:#a4502c
}
.status.expired{
    background:#eee;
    color:#777
}
.reference{
    overflow-wrap:anywhere;
    margin-top:22px
}
.login-wrap{
    max-width:440px;
    margin:65px auto 80px
}
.login-wrap h1{
    margin-bottom:30px
}
.login-wrap .panel>p{
    font-size:12px
}
.admin-intro{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin:45px 0 30px
}
.admin-intro h1{
    font-size:42px
}
.stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:17px;
    margin-bottom:30px
}
.stats .panel{
    padding:23px
}
.stats small{
    font-size:8px;
    letter-spacing:1px;
    margin:0
}
.stats strong{
    display:block;
    font:30px Georgia;
    margin:12px 0
}
.stats span{
    font-size:10px;
    color:var(--muted)
}
.filters{
    display:flex;
    align-items:end;
    gap:16px;
    margin:20px 0 25px
}
.filters label{
    margin:0
}
.filters .grow{
    flex:1
}
.filters>a{
    margin-bottom:12px;
    font-size:12px
}
.table-wrap{
    overflow-x:auto
}
table{
    width:100%;
    border-collapse:collapse;
    text-align:left;
    font-size:12px;
    white-space:nowrap
}
th{
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:1px;
    color:var(--muted);
    background:#f8f9f5;
    padding:13px 12px
}
td{
    padding:19px 12px;
    border-bottom:1px solid var(--line)
}
td small{
    font-size:10px
}
td a{
    font-size:11px
}
.empty{
    text-align:center;
    white-space:normal;
    padding:45px 20px
}
.empty>span{
    font:40px Georgia;
    color:#9aaa85
}
.empty h3{
    font:23px Georgia;
    margin:15px 0
}
.empty p{
    max-width:360px;
    margin:0 auto 18px
}
.pagination{
    display:flex;
    justify-content:center;
    gap:20px;
    margin-top:24px;
    font-size:11px
}
.settings-grid,.package-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    margin-bottom:32px
}
.embed-info{
    background:#eaf0df
}
.embed-info h2{
    font-size:32px
}
.embed-info textarea{
    font:11px/1.7 monospace
}
.embed-info>p{
    font-size:12px
}
.embed{
    background:transparent
}
.embed main{
    padding:26px;
    max-width:650px;
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:14px
}
.embed h2{
    font-size:28px
}
.embed .fine-print{
    margin-top:14px
}
.skip-link{
    position:absolute;
    top:-100px;
    left:10px;
    background:white;
    padding:10px;
    z-index:10
}
.skip-link:focus{
    top:10px
}
@media(min-width:1400px){
    .intro{
        padding-top:55px
    }
    main{
        max-width:1240px
    }
    .nature-card{
        height:300px
    }
}
@media(max-width:900px){
    .site-header{
        padding:20px 24px
    }
    .site-header nav{
        gap:15px
    }
    .site-header .contact{
        display:none
    }
    main{
        padding:0 24px 40px
    }
    .intro-note{
        display:none
    }
    .booking-layout{
        grid-template-columns:1.4fr 1fr;
        gap:18px
    }
    .panel{
        padding:22px
    }
    .panel-heading .tag{
        display:none
    }
    .field-grid{
        gap:12px
    }
    .stats{
        grid-template-columns:1fr 1fr
    }
    .stats strong{
        font-size:28px
    }
    footer{
        margin:0 24px
    }
    .admin-intro{
        align-items:start;
        flex-direction:column
    }
    .settings-grid{
        grid-template-columns:1fr
    }
}
@media(max-width:650px){
    .site-header{
        padding:17px 20px
    }
    .brand{
        font-size:17px
    }
    .brand-mark{
        width:36px;
        height:36px;
        font-size:27px
    }
    .brand small{
        font-size:6px
    }
    .site-header nav{
        font-size:10px;
        gap:12px
    }
    .site-header nav form{
        font-size:10px
    }
    .site-header nav a{
        max-width:90px
    }
    .intro{
        padding:30px 0 25px
    }
    h1{
        font-size:40px
    }
    .intro p:last-child{
        font-size:12px
    }
    .booking-layout{
        grid-template-columns:1fr
    }
    .booking-layout aside{
        display:flex;
        flex-direction:column
    }
    .nature-card{
        order:2;
        height:230px
    }
    .summary{
        margin:0 0 20px
    }
    .help{
        order:3
    }
    .panel-heading{
        gap:10px
    }
    .panel-heading h2{
        font-size:21px
    }
    .panel{
        padding:22px 18px
    }
    .field-grid,.stay-fields{
        grid-template-columns:1fr 1fr
    }
    .stay-fields{
        grid-template-columns:1fr
    }
    .stay-fields label{
        margin-bottom:15px
    }
    main{
        padding:0 18px 30px
    }
    footer{
        margin:0 18px;
        gap:14px;
        flex-direction:column
    }
    .narrow{
        margin:32px auto
    }
    .narrow h1,.admin-intro h1{
        font-size:34px
    }
    .date-strip{
        padding:13px
    }
    .date-strip strong{
        font-size:12px
    }
    .stats{
        gap:12px
    }
    .stats .panel{
        padding:18px 13px
    }
    .stats strong{
        font-size:25px
    }
    .stats small{
        font-size:7px
    }
    .stats span{
        font-size:9px
    }
    .filters{
        flex-wrap:wrap
    }
    .filters .grow{
        flex-basis:100%
    }
    .package-grid{
        grid-template-columns:1fr
    }
    .login-wrap{
        margin-top:40px
    }
    .embed main{
        padding:20px
    }
    .reference{
        font-size:9px
    }
}
@media(prefers-reduced-motion:reduce){
    *{
        transition:none!important
    }
}
