[hidden]{display:none!important}
:root{--bg:#f6f5f0;--paper:#ffffff;--ink:#1d2621;--muted:#5b6660;--line:#e3e1d8;--green:#2f5a4b;--soca:#1e7f7a;--soca-l:#d5ece9;--busy:#e7e4dc;--busy-ink:#a9a59a;--radius:14px;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:var(--soca)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .6em}
h2{font-size:clamp(1.8rem,3.5vw,2.6rem)}h3{font-size:1.25rem;margin-top:1.6em}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.top{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:24px;padding:14px 24px;background:rgba(246,245,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-family:var(--serif);font-size:1.3rem;color:var(--ink);text-decoration:none;margin-right:auto}
.nav{display:flex;gap:22px}.nav a{color:var(--ink);text-decoration:none;font-size:.95rem}.nav a:hover{color:var(--soca)}
.langs{display:flex;gap:4px}.langs a{font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--muted);text-decoration:none;padding:4px 7px;border-radius:6px}
.langs a.on{background:var(--soca);color:#fff}
.menu{display:none;background:none;border:0;padding:8px;cursor:pointer}.menu span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0}
.hero{min-height:92vh;display:flex;align-items:flex-end;background:#2f5a4b center/cover no-repeat;position:relative;color:#fff}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(10,25,20,.72))}
.hero-in{position:relative;max-width:1140px;width:100%;margin:0 auto;padding:0 20px 11vh}
.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;opacity:.9;margin:0 0 10px}
.hero h1{font-size:clamp(2.6rem,7vw,5rem);margin:0 0 .2em}
.sub{font-size:clamp(1.05rem,2vw,1.3rem);max-width:620px;margin:0 0 28px;opacity:.95}
.btn{display:inline-block;background:var(--soca);color:#fff;text-decoration:none;border:0;border-radius:999px;padding:14px 28px;font:600 1rem var(--sans);cursor:pointer;transition:background .2s}
.btn:hover{background:#176560}.btn:disabled{opacity:.6;cursor:wait}
section{padding:96px 0}
.about{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:start}
.about p{color:#33403a}
.rating{display:flex;align-items:center;gap:14px;margin-top:28px;font-size:.95rem}
.score{background:var(--green);color:#fff;font-weight:700;border-radius:10px 10px 10px 2px;padding:10px 12px;font-size:1.2rem}
.rating small{color:var(--muted)}
.features{list-style:none;margin:0;padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:12px}
.features li{padding-left:30px;position:relative}.features li:before{content:"";position:absolute;left:0;top:.45em;width:16px;height:16px;border-radius:50%;background:var(--soca-l);box-shadow:inset 0 0 0 5px var(--soca)}
.gallery-sec{padding-top:0}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:8px;padding:0 8px}
.gallery a{overflow:hidden;border-radius:8px;background:#ddd}
.gallery{grid-auto-flow:dense}.gallery a:first-child{grid-column:span 2;grid-row:span 2}.gallery a:nth-child(6),.gallery a:nth-child(11){grid-column:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery a:hover img{transform:scale(1.04)}
.location{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
.addr{font-weight:600}.info{padding-left:20px;color:#33403a}.link{font-weight:600;text-decoration:none}
.map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:420px}.map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}
.prices{padding-top:0}
.ptable{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.prow{display:grid;grid-template-columns:1.2fr 1.6fr 1fr 1fr;gap:12px;padding:16px 24px;border-top:1px solid var(--line);align-items:center}
.prow:first-child{border-top:0}.phead{background:var(--soca-l);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--green)}
.pseason{font-family:var(--serif);font-size:1.15rem}.pdates{color:var(--muted)}.pprice{font-weight:700;font-size:1.15rem;color:var(--soca)}
.pnote{color:var(--muted);font-size:.95rem;margin-top:14px}
@media (max-width:700px){.phead{display:none}.prow{grid-template-columns:1fr auto;gap:2px 12px;padding:14px 18px}.pdates{grid-column:1;font-size:.9rem}.pprice{grid-row:1;grid-column:2;text-align:right}.pmin{grid-column:2;text-align:right;font-size:.9rem;color:var(--muted)}}
.booking-sec{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lead{max-width:680px;color:#33403a}
.booking{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;margin-top:32px;align-items:start}
.cal-box{position:relative}
.cal-head{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;pointer-events:none}
.cal-head button{pointer-events:auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.3rem;cursor:pointer;line-height:1}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.month h4{text-align:center;font:600 1rem var(--sans);margin:6px 0 14px;text-transform:capitalize}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.wd{font-size:.72rem;text-transform:uppercase;color:var(--muted);text-align:center;padding-bottom:4px}
.d{aspect-ratio:1;border:0;border-radius:8px;background:var(--soca-l);color:var(--ink);font:500 .9rem var(--sans);cursor:pointer;padding:0;position:relative}
.d:hover{outline:2px solid var(--soca)}
.d.e{background:none;cursor:default}.d.e:hover{outline:0}
.d.past{background:none;color:#c3c0b7;cursor:default}.d.past:hover{outline:0}
.d.busy{background:var(--busy);color:var(--busy-ink);text-decoration:line-through;cursor:not-allowed}.d.busy:hover{outline:0}
.d.out{background:linear-gradient(135deg,var(--busy) 50%,var(--soca-l) 50%);color:var(--ink);text-decoration:none;cursor:pointer}
.d.in{background:linear-gradient(135deg,var(--soca-l) 50%,var(--busy) 50%)}
.d.co{background:linear-gradient(135deg,var(--soca-l) 50%,var(--busy) 50%);color:var(--ink);text-decoration:none;cursor:pointer}
.d.sel{background:var(--soca);color:#fff}
.d.rng{background:#8cc7c2;color:#fff}
.legend{display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-top:16px}
.lg{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:-8px}.lg.free{background:var(--soca-l)}.lg.busy{background:var(--busy)}.lg.sel{background:var(--soca)}
.summary{font-weight:600;margin-top:14px;min-height:1.6em}
.form{display:grid;gap:14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.form label{display:grid;gap:6px;font-size:.9rem;font-weight:600}
.form input,.form select,.form textarea{font:400 1rem var(--sans);padding:11px 12px;border:1px solid #cfccc1;border-radius:9px;background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--soca);border-color:transparent}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:10px!important;font-weight:400!important}.check input{width:18px;height:18px;margin-top:3px;flex:none}
.hp{position:absolute!important;left:-9999px}
.err{color:#b3261e;margin:0;min-height:1.2em;font-size:.95rem}
.done{background:var(--soca-l);border-radius:var(--radius);padding:32px}
.foot{background:#1f2e28;color:#dfe7e2;padding:72px 0 24px}.foot a{color:#9fd8d2}
.foot-in{display:grid;grid-template-columns:1fr 1fr;gap:40px}.foot h2{color:#fff}
.copy{text-align:center;font-size:.8rem;opacity:.6;margin:48px 0 0}
.lb{position:fixed;inset:0;z-index:50;background:rgba(10,14,12,.94);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}.lb img{max-width:92vw;max-height:88vh;border-radius:6px}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer;padding:12px 18px}
.lb-x{top:8px;right:8px}.lb-p{left:4px}.lb-n{right:4px}
@media (max-width:900px){
 .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line)}
 .nav.open{display:flex}.nav a{padding:14px 24px;border-top:1px solid var(--line)}
 .menu{display:block}.top{gap:12px;padding:12px 16px}
 .about,.location,.booking,.foot-in{grid-template-columns:1fr;gap:32px}
 .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}
 .cal{grid-template-columns:1fr}.month+.month{display:none}
 section{padding:64px 0}.wrap{padding:0 16px}
}
@media (max-width:480px){.langs a{padding:3px 5px}.brand{font-size:1rem;white-space:nowrap}}
/* cookie consent */
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:600px;margin:0 auto;background:#fff;color:#1f2a2a;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.18);padding:16px 18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;font-size:.95rem;line-height:1.45}
.ck[hidden]{display:none}
.ck p{margin:0;flex:1 1 260px}
.ck-btns{display:flex;gap:8px;flex-wrap:wrap}
.ck .btn{margin:0}
.ck-no{background:transparent;border:1px solid #c9d3d2;border-radius:999px;padding:.6em 1.2em;cursor:pointer;font:inherit;color:inherit}
.copy a{color:inherit}