:root{--wood:#a8754a;--wood-d:#7d5232;--sand:#f6f1e9;--ink:#1f2b2a;--forest:#2f4a3f;--sea:#3d6b73;--mute:#6b706c}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--sand);line-height:1.65}
h1,h2,h3,.navbar-brand{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;letter-spacing:.01em}
h2{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:1.2rem}h3{font-size:1.7rem}
section{padding:clamp(3rem,8vw,6rem) 0;scroll-margin-top:60px}section.alt{background:#fff}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--wood);font-weight:600;margin-bottom:.4rem}
.rk-nav{transition:background .3s,box-shadow .3s;padding:.7rem 0}.rk-nav .navbar-brand,.rk-nav .nav-link{color:#fff}.rk-nav .navbar-brand{font-size:1.5rem}
.rk-nav.solid,.rk-nav.open{background:rgba(31,43,42,.95);box-shadow:0 2px 20px rgba(0,0,0,.15)}.rk-nav .nav-link{font-size:.9rem;opacity:.9}.rk-nav .nav-link:hover{opacity:1;color:#fff}
.navbar-toggler{border-color:rgba(255,255,255,.5)}.navbar-toggler-icon{filter:invert(1)}
.langs button{background:none;border:1px solid rgba(255,255,255,.45);color:#fff;font-size:.75rem;padding:.2rem .5rem;margin-left:-1px}.langs button.active{background:#fff;color:var(--ink)}
.hero{min-height:100svh;display:flex;align-items:flex-end;color:#fff;background:#2f4a3f url(/img/cabins/o01.webp) center/cover;position:relative}
.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0,rgba(0,0,0,0) 35%,rgba(0,0,0,.55) 100%)}
.hero-in{position:relative;padding-bottom:clamp(3rem,10vh,7rem)}.hero h1{font-size:clamp(3rem,9vw,6.5rem);line-height:1;margin:0 0 .6rem}.hero p{font-size:clamp(1.05rem,2.2vw,1.35rem);max-width:38rem;opacity:.95}
.btn-book{background:var(--wood);color:#fff;border:0;border-radius:2px;padding:.9rem 2rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem}.btn-book:hover{background:var(--wood-d);color:#fff}
.btn-ghost{border:1px solid currentColor;border-radius:2px;padding:.85rem 1.8rem;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;color:inherit;text-decoration:none;display:inline-block}
.lead{font-size:1.15rem;color:#3b4644;max-width:46rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.chips span{border:1px solid #d9cdbb;background:#fff;padding:.35rem .9rem;border-radius:99px;font-size:.88rem}
.hcard{background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 10px 40px rgba(47,74,63,.08);height:100%;display:flex;flex-direction:column}
.hcard .ph-main{aspect-ratio:3/2;overflow:hidden;cursor:zoom-in}.hcard .ph-main img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.hcard .ph-main:hover img{transform:scale(1.04)}
.thumbs{display:flex;gap:4px;padding:4px;overflow-x:auto}.thumbs img{height:64px;width:90px;object-fit:cover;cursor:zoom-in;flex:none;border-radius:2px}
.hcard .body{padding:1.8rem;flex:1;display:flex;flex-direction:column}.meta{color:var(--sea);font-weight:500;font-size:.9rem;margin-bottom:.8rem}
.beds{list-style:none;padding:0;margin:0 0 1rem;font-size:.92rem}.beds li:before{content:'— ';color:var(--wood)}
.plist{border-top:1px solid #eee4d6;margin-top:auto;padding-top:1rem}.plist div{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.95rem}.plist b{font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--wood-d)}
.note{background:#efe6d8;border-left:3px solid var(--wood);padding:1rem 1.2rem;margin-top:2rem;font-size:.95rem}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}@media(min-width:768px){.gal{grid-template-columns:repeat(4,1fr)}.gal img:first-child{grid-column:span 2;grid-row:span 2}}
.gal img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;cursor:zoom-in;border-radius:2px}
.rules{columns:2 16rem;padding:0;list-style:none}.rules li{padding:.4rem 0;border-bottom:1px solid #e9e0d2;break-inside:avoid}
.cal{width:100%;table-layout:fixed;text-align:center}.cal th{font-size:.8rem;color:var(--mute);font-weight:600}.cal td{padding:.5rem 0;border:3px solid #fff;font-size:.95rem}
.d-free{background:#dcebdc}.d-part{background:#f3e3b5}.d-busy{background:#d9a5a0;color:#fff;text-decoration:line-through}.d-past{background:#f1f1f1;color:#bbb}.d-today{outline:2px solid var(--ink);outline-offset:-2px}
.lg{display:inline-block;width:1em;height:1em;vertical-align:-2px;margin:0 .3em 0 .8em}.nav-pills .nav-link.active{background:var(--forest)}.nav-pills .nav-link{color:var(--forest)}
iframe.map{width:100%;height:360px;border:0;border-radius:4px}
.contact a{color:var(--ink);text-decoration:none}.contact .num{font-size:1.25rem;font-weight:500}.contact .lng{font-size:.75rem;letter-spacing:.1em;color:var(--wood);margin-left:.5rem}
.contact .wa{font-size:.85rem;color:var(--sea);margin-left:.8rem}.rk-foot{background:var(--ink);color:#cfd6d2;padding:2rem 0;font-size:.85rem}
.lb{position:fixed;inset:0;background:rgba(10,15,14,.94);z-index:2000;display:flex;align-items:center;justify-content:center}.lb[hidden]{display:none}.lb img{max-width:94vw;max-height:88vh;object-fit:contain}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:3rem;padding:1rem;line-height:1}.lb-x{top:0;right:.5rem}.lb-p{left:0}.lb-n{right:0}
.ph{color:#b00}
.contact .ic{display:inline-flex;vertical-align:-2px;margin-right:.55rem;color:var(--wood)}.contact .wa{display:inline-flex;vertical-align:-4px;margin-left:.9rem}.contact .wa:hover svg{transform:scale(1.12)}.contact .num{font-size:1.15rem}
.contact li:has(>.wa){display:grid;grid-template-columns:12rem 4.5rem 2rem;align-items:center;column-gap:.5rem}.contact li:has(>.wa) .num{display:inline-flex;align-items:center;font-variant-numeric:tabular-nums;white-space:nowrap}.contact li:has(>.wa) .lng,.contact li:has(>.wa) .wa{margin-left:0}.contact li:has(>.wa) .wa{vertical-align:0;justify-self:start}@media(max-width:360px){.contact li:has(>.wa){grid-template-columns:10.5rem 4rem 2rem}.contact .num{font-size:1.05rem}}

/* mobile overflow fix */
@media (max-width:767.98px){.row.g-5,.row.g-4{--bs-gutter-x:1.5rem}}
.row>*{min-width:0}
a[href^="mailto:"],a[href^="tel:"],.contacts a{overflow-wrap:anywhere}

/* mobile header + hero CTA */
@media (max-width:575.98px){
 #topnav .navbar-brand{font-size:1.05rem;max-width:48vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:.25rem}
 #topnav .container{padding-left:.75rem;padding-right:.75rem}
 #topnav .langs{margin-right:.4rem!important}
 #topnav .langs button{padding:.2rem .4rem;font-size:.75rem;min-width:0}
 #topnav .navbar-toggler{padding:.25rem .45rem;flex-shrink:0}
 #topnav .navbar-toggler-icon{width:1.3rem;height:1.3rem}
 #topnav .navbar-collapse{flex-basis:100%}
 #hbtn{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;width:100%}
 #hbtn>a{display:block;width:100%;margin:0!important;text-align:center;padding:.85rem 1rem;box-sizing:border-box}
}

/* hero CTA equal height */
#hbtn{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
#hbtn>a{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;margin:0!important;padding:.85rem 1.8rem;line-height:1.2;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border:1px solid currentColor;border-radius:2px;vertical-align:middle}
#hbtn>a.btn-book{border-color:var(--wood)}
#hbtn>a.btn-book:hover{border-color:var(--wood-d)}
@media (max-width:575.98px){#hbtn{flex-direction:column;align-items:stretch}#hbtn>a{display:flex;width:100%;padding:.85rem 1rem}}

/* mobile menu panel */
@media (max-width:991.98px){
 #topnav>.container{flex-wrap:wrap}
 #topnav .navbar-brand{max-width:calc(100% - 4rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #topnav.open,#topnav:has(.navbar-collapse.show),#topnav:has(.navbar-collapse.collapsing){background:#1f2b2a}
 #topnav .navbar-collapse{flex-basis:100%;width:100%;order:3}
 #topnav .navbar-collapse.show,#topnav .navbar-collapse.collapsing{background:#1f2b2a;border-top:1px solid rgba(255,255,255,.15);margin-top:.6rem}
 #topnav #navlinks{margin:0!important;padding:.4rem 0;text-align:left}
 #topnav #navlinks .nav-link{padding:.7rem .25rem;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.08)}
 #topnav .langs-m{display:flex;padding:.8rem .25rem 1rem}
 #topnav .langs-m button{padding:.35rem .8rem;font-size:.85rem}
}
