:root{--pine:#22342a;--pine2:#2e4637;--moss:#5d6f4e;--paper:#f6f1e7;--card:#fffdf8;--line:#e4dccb;--ink:#1e2420;--muted:#6a6f66;--ember:#c4622d;--ember-d:#a24c1f;--ok:#3f7a52;--warn:#b7791f;--bad:#a63d32;--r:16px;--sh:0 1px 2px rgba(30,36,32,.06),0 10px 30px rgba(30,36,32,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16.5px/1.6 Inter,system-ui,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,.serif{font-family:Fraunces,Georgia,serif;font-optical-sizing:auto;font-variation-settings:"SOFT" 50,"WONK" 0;letter-spacing:-.015em;line-height:1.06;margin:0 0 .45em;font-weight:600}
h1{font-size:clamp(2.6rem,7vw,5.2rem)}h2{font-size:clamp(2rem,4.4vw,3.2rem)}h3{font-size:1.35rem}
p{margin:0 0 1em}.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.eyebrow{display:block;font:600 .74rem/1 Inter;letter-spacing:.2em;text-transform:uppercase;color:var(--ember-d);margin-bottom:16px}
.lead{font-size:1.15rem;color:#3c443d;max-width:60ch}.muted{color:var(--muted)}.small{font-size:.88rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:999px;border:1.5px solid var(--pine);background:var(--pine);color:#fff;font-weight:600;text-decoration:none;cursor:pointer;transition:.15s;font-size:.97rem}
.btn:hover{background:var(--pine2)}.btn-ember{background:var(--ember);border-color:var(--ember)}.btn-ember:hover{background:var(--ember-d);border-color:var(--ember-d)}
.btn-ghost{background:transparent;color:var(--pine)}.btn-ghost:hover{background:rgba(34,52,42,.07)}.btn-light{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}.btn-light:hover{background:rgba(255,255,255,.12)}
.btn-sm{padding:9px 16px;font-size:.88rem}.btn[disabled]{opacity:.5;cursor:not-allowed}
:focus-visible{outline:3px solid var(--ember);outline-offset:2px}
.demo-bar{background:#1a231d;color:#e9dfcd;font-size:.8rem;text-align:center;padding:7px 14px}.demo-bar b{color:#f3b48b}
.nav{position:sticky;top:0;z-index:40;background:rgba(246,241,231,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;gap:22px;height:72px}.logo img{height:46px;width:auto}
.links{display:flex;gap:26px;margin-left:auto;font-weight:500;font-size:.95rem}.links a{text-decoration:none;opacity:.82}.links a:hover,.links a.on{opacity:1;color:var(--ember-d)}
@media(max-width:820px){.links{display:none}.nav-in{justify-content:space-between}.logo img{height:40px}}
/* hero */
.hero{position:relative;min-height:min(88vh,820px);display:grid;align-items:end;color:#fff;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,22,17,.15) 0%,rgba(15,22,17,.2) 40%,rgba(15,22,17,.82) 100%)}
.hero .wrap{position:relative;z-index:2;padding:120px 0 64px}.hero h1{max-width:13ch;text-wrap:balance}.hero .lead{color:#efe8dc}.hero .eyebrow{color:#f3b48b}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.facts{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px;font-size:.92rem;color:#e7dfd1}.facts span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ember);margin-right:9px;vertical-align:2px}
section{padding:96px 0}.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
/* stays */
.stays{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:28px}
.stay{background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column;text-decoration:none;transition:transform .2s}
.stay:hover{transform:translateY(-3px)}.stay .ph{aspect-ratio:4/3;overflow:hidden;position:relative}.stay .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.stay:hover .ph img{transform:scale(1.04)}
.tag{position:absolute;left:16px;top:16px;background:rgba(246,241,231,.94);color:var(--pine);font-weight:600;font-size:.78rem;padding:6px 12px;border-radius:999px}
.stay .bd{padding:24px 26px 26px;display:flex;flex-direction:column;gap:6px;flex:1}.stay .meta{color:var(--muted);font-size:.92rem}
.stay .row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.price b{font-family:Fraunces,serif;font-size:1.5rem}.price{color:var(--muted);font-size:.9rem}
.ph-note{font-size:.72rem;color:var(--warn);font-weight:600;letter-spacing:.02em}
/* split */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}@media(max-width:900px){.split{grid-template-columns:1fr;gap:36px}}
.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:220px 220px;gap:12px}.mosaic img{width:100%;height:100%;object-fit:cover;border-radius:14px}.mosaic img:first-child{grid-row:span 2}
@media(max-width:600px){.mosaic{grid-template-rows:150px 150px}}
.checks{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}.checks li{padding-left:30px;position:relative}.checks li:before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:var(--pine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") center/12px no-repeat}
.dark{background:var(--pine);color:#efe8dc}.dark h2,.dark h3{color:#fff}.dark .eyebrow{color:#f3b48b}.dark .muted{color:#b9c2b5}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.quote{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:14px}
.quote p{font-family:Fraunces,serif;font-size:1.18rem;line-height:1.45;margin:0;color:#fff}.quote .who{font-size:.85rem;color:#b9c2b5;margin-top:auto}
.stats{display:flex;flex-wrap:wrap;gap:16px 48px;margin:10px 0 44px}.stat b{display:block;font-family:Fraunces,serif;font-size:2.6rem;color:#fff;line-height:1}.stat span{font-size:.88rem;color:#b9c2b5}
.near{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px}.near div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}.near b{display:block;font-family:Fraunces,serif;font-size:1.15rem;margin-bottom:4px}
.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-weight:600;font-size:1.06rem;list-style:none;display:flex;justify-content:space-between;gap:16px}.faq summary:after{content:"+";font-size:1.4rem;line-height:1;color:var(--ember)}.faq details[open] summary:after{content:"–"}.faq details p{margin:12px 0 0;color:#454c45}
.map{border-radius:18px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:#e8e2d4}.map iframe{width:100%;height:100%;border:0}
footer{background:#18211b;color:#b9c2b5;padding:64px 0 40px;font-size:.93rem}footer a{color:#e9dfcd;text-decoration:none}footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}@media(max-width:720px){footer .cols{grid-template-columns:1fr}}
footer .fine{margin-top:40px;padding-top:22px;border-top:1px solid #2c372f;font-size:.78rem;color:#8b968a}
/* property page */
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:240px 240px;gap:10px;border-radius:20px;overflow:hidden;margin-top:26px}
.gal button{padding:0;border:0;cursor:zoom-in;background:#ddd;overflow:hidden}.gal img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gal button:hover img{transform:scale(1.03)}
.gal button:first-child{grid-row:span 2}.gal .more{position:relative}.gal .more span{position:absolute;right:14px;bottom:14px;background:rgba(246,241,231,.95);color:var(--pine);padding:8px 14px;border-radius:999px;font-weight:600;font-size:.85rem}
@media(max-width:720px){.gal{grid-template-columns:1fr 1fr;grid-template-rows:240px 120px}.gal button:first-child{grid-column:span 2;grid-row:auto}.gal button:nth-child(n+4){display:none}}
.prop{display:grid;grid-template-columns:1fr 400px;gap:56px;margin-top:44px;align-items:start}@media(max-width:980px){.prop{grid-template-columns:minmax(0,1fr)}}
.keyfacts{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 26px}.keyfacts span{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-size:.9rem}
.amen{columns:2;column-gap:28px;padding:0;list-style:none}.amen li{break-inside:avoid;padding:7px 0 7px 26px;position:relative;border-bottom:1px dashed var(--line)}.amen li:before{content:"";position:absolute;left:4px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--moss)}@media(max-width:560px){.amen{columns:1}}
.block{padding:30px 0;border-top:1px solid var(--line)}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh);padding:24px}
.bookbox{position:sticky;top:92px}
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(10,14,11,.94);display:none;align-items:center;justify-content:center}.lightbox.on{display:flex}
.lightbox img{max-width:92vw;max-height:84vh;border-radius:8px}.lightbox button{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.5rem;cursor:pointer}.lb-x{top:18px;right:18px}.lb-p{left:18px}.lb-n{right:18px}.lb-c{position:absolute;bottom:20px;color:#ccc;font-size:.85rem}
/* booking widget */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:.8rem;font-weight:600;color:#4a5149;letter-spacing:.02em}
.field input,.field select,.field textarea{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--pine);outline:none}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.field input{min-width:0}
.cal{user-select:none}.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cal-h b{font-family:Fraunces,serif;font-size:1.1rem}
.cal-h button{border:1px solid var(--line);background:#fff;border-radius:50%;width:36px;height:36px;cursor:pointer}.cal-h button[disabled]{opacity:.35;cursor:default}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.cal-g .dw{font-size:.7rem;color:var(--muted);font-weight:600;padding:4px 0}
.cal-g button{aspect-ratio:1;border:0;background:transparent;border-radius:10px;cursor:pointer;font-size:.9rem;position:relative}
.cal-g button:hover:not([disabled]){background:#ece5d6}.cal-g button[disabled]{color:#bdb6a7;text-decoration:line-through;cursor:not-allowed}
.cal-g button.past{text-decoration:none}.cal-g button.in{background:#e8dfcd;border-radius:0}.cal-g button.sel{background:var(--pine)!important;color:#fff;border-radius:10px}
.cal-g button.co{background:transparent;color:inherit;text-decoration:none;cursor:pointer}
.legend{display:flex;gap:16px;font-size:.78rem;color:var(--muted);margin-top:8px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.bd-lines{font-size:.94rem;margin:14px 0 0}.bd-lines div{display:flex;justify-content:space-between;padding:6px 0}.bd-lines .tot{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-weight:700;font-size:1.05rem}
.err{color:var(--bad);font-size:.88rem;margin:8px 0 0;min-height:1.2em}.note{background:#f8efe1;border:1px solid #ecd9bb;color:#6b4a1d;border-radius:12px;padding:12px 14px;font-size:.85rem}
.steps{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap}.steps span{font-size:.82rem;font-weight:600;padding:7px 14px;border-radius:999px;background:#ebe4d5;color:#6a6f66}.steps span.on{background:var(--pine);color:#fff}
.stub{border:2px dashed #d3b98f;background:#fbf4e7;border-radius:14px;padding:18px}.stub b{color:var(--ember-d)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* admin */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}.tabs button{border:0;background:none;padding:12px 16px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.on{color:var(--pine);border-color:var(--ember)}
.adm-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.adm-grid{grid-template-columns:minmax(0,1fr)}}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 14px}
.mcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.mcal .dw{font-size:.7rem;font-weight:600;color:var(--muted);text-align:center}
.mcal .d{min-height:74px;border:1px solid var(--line);border-radius:8px;padding:4px;font-size:.72rem;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:2px;overflow:hidden}.mcal .d.out{opacity:.35}.mcal .d.today{border-color:var(--ember)}.mcal .d.pick{outline:2px solid var(--pine)}
.mcal .d b{font-weight:600;font-size:.78rem}.mcal .ev{border-radius:4px;padding:1px 4px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.68rem}
.ev.confirmed{background:#3f7a52}.ev.pending{background:#d69e2e}.ev.block{background:#7b8794}.ev.ical{background:#5a67d8}
@media(max-width:600px){.mcal .d{min-height:52px}.mcal .ev{font-size:0;height:6px;padding:0}}
.tbl{overflow-x:auto}.tbl table{width:100%;border-collapse:collapse;font-size:.88rem}.tbl th,.tbl td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tbl th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.pill.pending{background:#fbeed2;color:#8a5a12}.pill.confirmed{background:#dcefe1;color:#2b5e3b}.pill.cancelled{background:#f1dcd9;color:#8a2f26}
.row-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.ovrow{display:grid;grid-template-columns:1.2fr 1fr 1fr .8fr .7fr auto;gap:8px;margin-bottom:8px}.ovrow input{border:1.5px solid var(--line);border-radius:10px;padding:8px;min-width:0}@media(max-width:700px){.ovrow{grid-template-columns:1fr 1fr}}
dialog{border:0}dialog::backdrop{background:rgba(10,14,11,.5)}.linkbtn{background:none;border:0;color:var(--ember-d);cursor:pointer;font-weight:600;padding:2px 4px;font-size:.82rem}
@media(max-width:600px){.admin .card{padding:16px}.mcal{gap:2px}.mcal .d{padding:2px;min-height:46px}}
@media(max-width:700px){.tbl thead{display:none}.tbl table,.tbl tbody{display:block}.tbl tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--line)}.tbl td{border:0;padding:2px 0}.tbl td:last-child{grid-column:1/-1}}
