:root{
  --ink:#1D2E42; --ink-2:#2C4359; --slate:#5B6B7C; --mute:#8494A3;
  --lagoon:#6482A8; --lagoon-d:#3B5F87; --lagoon-pale:#E6EDF4;
  --sand:#E9E0D2; --shell:#FBF9F6; --line:#E2DACE; --line-2:#EFEAE2;
  --warn:#A2463A; --warn-bg:#FCF3F0; --warn-line:#EDD8D2;
  --r:14px; --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--shell);color:var(--ink);font:400 16.5px/1.65 Karla,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:Newsreader,Georgia,serif;font-weight:500;letter-spacing:-.014em;margin:0;line-height:1.13;
  font-variant-ligatures:none;font-feature-settings:"liga" 0,"dlig" 0,"clig" 0}
h1{font-size:clamp(2.4rem,4.9vw,3.85rem)}
h2{font-size:clamp(1.8rem,3vw,2.5rem)}
h3{font-size:1.26rem;line-height:1.25}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.assumed{border-bottom:1px dotted var(--lagoon);cursor:help}
:focus-visible{outline:2.5px solid var(--lagoon-d);outline-offset:3px;border-radius:4px}

/* utility bar */
.util{background:var(--ink);color:#DCE5EE;font-size:13.6px}
.util .wrap{display:flex;align-items:center;gap:22px;min-height:40px;flex-wrap:wrap;justify-content:center}
.util .fee{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#fff}
.util .fee svg{width:15px;height:15px;stroke:#8FB4D8;fill:none;stroke-width:2}
.util a{color:#DCE5EE;text-decoration:none;display:inline-flex;align-items:center;gap:7px}
.util a:hover{color:#fff;text-decoration:underline}
.util .dot{opacity:.35}
@media(max-width:700px){.util .dot{display:none}.util .wrap{gap:6px 16px;padding-top:8px;padding-bottom:8px}}

/* header */
.hd{position:sticky;top:0;z-index:60;background:rgba(251,249,246,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-2)}
.hd .wrap{display:flex;align-items:center;gap:26px;min-height:104px}
.brand{display:flex;align-items:center;gap:20px;text-decoration:none;margin-right:auto}
.brand img{height:64px;width:auto;flex:none}
.brand b{display:block;font:600 19px/1 Poppins,Karla,sans-serif;letter-spacing:.11em;text-transform:uppercase}
.brand i{display:block;font:600 10.5px/1 Karla;letter-spacing:.15em;text-transform:uppercase;color:var(--lagoon-d);font-style:normal;margin-top:6px}
.nav{display:flex;align-items:center;gap:26px}
.nav a{text-decoration:none;font-size:15.5px;color:var(--ink-2);padding:6px 0;border-bottom:1.5px solid transparent}
.nav a:hover{border-color:var(--lagoon)}
.nav a.cta{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--ink);border-radius:100px;padding:14px 30px;font:600 15px/1.25 Karla;border-bottom-width:1.5px}
.nav a.cta:hover{background:var(--ink);color:#fff}
.nav a.wa{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#25D366;
    color:#0A2F1A;text-decoration:none;font:600 15px/1.25 Karla;padding:14px 30px;border-radius:100px;
    border:1.5px solid #25D366;white-space:nowrap;box-sizing:border-box}
.nav a.wa:hover{background:#1EBE5B;border-color:#1EBE5B}
.nav a.wa svg{width:17px;height:17px;fill:currentColor;flex:none}
.util a svg{fill:#5CE58F}
.orwa svg{fill:#25D366}
@media(max-width:940px){.nav a:not(.cta){display:none}}
/* The mark scales back on small screens so it never crowds the CTA. The gap and
   the header's breathing room stay in proportion to it at every size. */
@media(max-width:760px){.hd .wrap{min-height:88px}.brand{gap:15px}.brand img{height:48px}}
@media(max-width:430px){.hd .wrap{min-height:78px}.brand{gap:13px}.brand img{height:42px}.brand b{font-size:17px}}

/* buttons */
.btn{border:0;background:var(--lagoon-d);color:#fff;font:600 15px Karla;padding:14px 24px;border-radius:10px;cursor:pointer}
.btn:hover{background:var(--ink)}
.btn-lg{padding:16px 28px;font-size:16px;width:100%}

/* hero */
.hero{padding:60px 0 44px}
.hero .wrap{display:grid;grid-template-columns:1.04fr .96fr;gap:58px;align-items:center}
.kicker{font:600 13px Karla;letter-spacing:.16em;text-transform:uppercase;color:var(--lagoon-d);margin-bottom:20px}
.lede{margin-top:22px;font-size:18.5px;color:var(--slate);max-width:46ch}
.arch{position:relative;aspect-ratio:5/6;overflow:hidden;background:var(--sand);
  border-radius:50% 50% 16px 16px / 40% 40% 2% 2%}
.arch picture{display:block;width:100%;height:100%}
.arch img{width:100%;height:100%;object-fit:cover}
.archbar{position:absolute;left:16%;right:16%;bottom:0;height:12px;background:var(--lagoon)}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:36px}.hero{padding:38px 0 26px}}

/* search */
.srch{display:flex;flex-wrap:wrap;gap:6px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:8px;margin-top:30px;box-shadow:0 1px 2px rgba(29,46,66,.05)}
.fld{flex:1 1 120px;padding:8px 12px;min-width:0}
/* "See what's available" is too wide to sit beside the three fields at laptop
   widths without cropping the date inputs, so it is allowed to wrap and fill
   whatever row it lands on rather than hanging short at the left. */
.srch .btn{flex:1 1 auto}
.fld label,.party-box label{display:block;font:600 11.5px Karla;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:3px}
.fld input,.fld select{width:100%;border:0;background:none;font:500 15px Karla;color:var(--ink);padding:0}
.fld+.fld{border-left:1px solid var(--line-2)}
.srch-note{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:14.5px;color:var(--slate)}
.srch-note svg{width:17px;height:17px;stroke:var(--lagoon-d);fill:none;stroke-width:1.9;flex:none}

/* steps */
.inc{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);background:#fff;padding:30px 0}
.inc ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.inc li{display:flex;gap:12px;font-size:15px;color:var(--ink-2);line-height:1.45}
.inc svg{width:19px;height:19px;flex:none;stroke:var(--lagoon-d);fill:none;stroke-width:1.7;margin-top:2px}
@media(max-width:820px){.inc ul{grid-template-columns:1fr 1fr;gap:20px}}
.steps{background:var(--shell);border-bottom:1px solid var(--line-2);padding:60px 0}
.steps ol{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:34px;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding-left:52px}
.steps li::before{content:counter(s);position:absolute;left:0;top:-4px;width:36px;height:36px;border-radius:50%;
  background:var(--lagoon-pale);color:var(--lagoon-d);font:600 16px Karla;display:grid;place-items:center}
.steps b{display:block;font:600 16.5px Karla;margin-bottom:6px}
.steps p{color:var(--slate);font-size:15.5px}
@media(max-width:820px){.steps ol{grid-template-columns:1fr;gap:24px}}

/* sections */
.sec{padding:74px 0}
.sec-hd{margin-bottom:34px}
.sec-hd p{color:var(--slate);margin-top:12px;max-width:56ch}

/* cards */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px}
@media(max-width:900px){.grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.grid{grid-template-columns:1fr}}
.card{background:none;border:0;padding:0;text-align:left;cursor:pointer;font:inherit;color:inherit;display:block;text-decoration:none}
.card .ph{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--sand)}
.card .ph picture{display:block;width:100%;height:100%}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card:hover .ph img{transform:scale(1.035)}
.card h3{margin-top:15px}
.where{font-size:14.5px;color:var(--mute);margin-top:3px}
.meta{font-size:14.5px;color:var(--slate);margin-top:9px}
.price{margin-top:11px;font-size:15.5px}
.price b{font-weight:700}
.price span{color:var(--mute)}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc div{background:#fff;border:1px solid var(--line-2);border-radius:var(--r);padding:26px}
.svc svg{width:22px;height:22px;stroke:var(--lagoon-d);fill:none;stroke-width:1.7;margin-bottom:14px}
.svc b{display:block;font:600 16.5px Karla;margin-bottom:7px}
.svc p{font-size:15px;color:var(--slate)}
@media(max-width:880px){.svc{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svc{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about p+p{margin-top:16px}
.about .ph{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--sand)}
.about .ph picture{display:block;width:100%;height:100%}
.about .ph img{width:100%;height:100%;object-fit:cover}
@media(max-width:880px){.about{grid-template-columns:1fr;gap:32px}}

/* host band */
.host{background:var(--ink);color:#fff;border-radius:22px;padding:56px 52px;display:grid;
  grid-template-columns:1.25fr 1fr;gap:46px;align-items:center}
.host h2{color:#fff}
.host p{color:#C3D0DC;margin-top:16px;max-width:46ch}
.host ul{margin:22px 0 0;padding:0;list-style:none;color:#C3D0DC;font-size:15.5px}
.host li{padding-left:22px;position:relative;margin-top:9px}
.host li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;background:var(--lagoon)}
.host .act{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--r);padding:28px}
.host .act .btn{background:#fff;color:var(--ink);width:100%}
.host .act .btn:hover{background:var(--lagoon-pale)}
.host .act small{display:block;color:#9FB2C2;font-size:13.5px;margin-top:14px;line-height:1.55}
@media(max-width:880px){.host{grid-template-columns:1fr;padding:40px 28px}}

/* footer */
.ft{border-top:1px solid var(--line-2);padding:50px 0 60px;margin-top:22px}
.ft .wrap{display:flex;flex-wrap:wrap;gap:38px;justify-content:space-between;font-size:14.5px;color:var(--slate)}
.ft a{color:var(--slate);text-decoration:none;display:block;margin-top:9px}
.ft a:hover{color:var(--ink)}
.ft h4{font:600 12.5px Karla;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);margin:0 0 4px}

/* property */
.back{display:inline-flex;align-items:center;gap:8px;background:none;border:0;font:500 15px Karla;color:var(--slate);cursor:pointer;padding:26px 0 0;text-decoration:none}
.back:hover{color:var(--ink)}
.ptitle{margin:18px 0 22px}
.ptitle .meta{font-size:16px;margin-top:10px}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:9px;height:min(60vh,470px);border-radius:var(--r);overflow:hidden}
.gal picture{display:block;width:100%;height:100%;min-height:0}
.gal img{width:100%;height:100%;object-fit:cover;background:var(--sand);cursor:zoom-in}
.gal picture:first-child{grid-row:span 2}
.galwrap{position:relative}
.allph{position:absolute;right:16px;bottom:16px;background:#fff;border:1px solid var(--line);border-radius:9px;
  font:600 14px Karla;padding:10px 16px;cursor:pointer}
@media(max-width:760px){.gal{grid-template-columns:1fr;grid-template-rows:none;height:300px}.gal picture:not(:first-child){display:none}.gal picture:first-child{grid-row:auto}}
.cols{display:grid;grid-template-columns:1.55fr .95fr;gap:56px;padding:46px 0 20px;align-items:start}
@media(max-width:920px){.cols{grid-template-columns:1fr;gap:34px}}
.blk{padding:30px 0;border-top:1px solid var(--line-2)}
.blk:first-child{border-top:0;padding-top:0}
.blk h3{margin-bottom:14px}
.blk p{color:var(--slate)}
.blk p+p{margin-top:12px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0;padding:0;list-style:none}
.facts li{background:#fff;border:1px solid var(--line-2);border-radius:11px;padding:15px}
.facts b{display:block;font:600 22px Newsreader,serif;line-height:1}
.facts span{font-size:13.5px;color:var(--mute);display:block;margin-top:5px}
@media(max-width:600px){.facts{grid-template-columns:1fr 1fr}}
.amen{columns:2;column-gap:30px;list-style:none;margin:0;padding:0}
.amen li{break-inside:avoid;padding:7px 0 7px 26px;position:relative;font-size:15.5px;color:var(--ink-2)}
.amen li::before{content:"";position:absolute;left:0;top:14px;width:8px;height:8px;border-radius:2px;background:var(--lagoon-pale);border:1.5px solid var(--lagoon)}
@media(max-width:560px){.amen{columns:1}}
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rooms div{background:#fff;border:1px solid var(--line-2);border-radius:11px;padding:18px}
.rooms b{display:block;margin-bottom:5px}
.rooms span{font-size:14.5px;color:var(--slate)}
@media(max-width:560px){.rooms{grid-template-columns:1fr}}
.rules{list-style:none;margin:0;padding:0}
.cxl{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cxl li{display:flex;justify-content:space-between;gap:18px;align-items:baseline;background:#fff;
  border:1px solid var(--line-2);border-radius:11px;padding:14px 16px}
.cxl b{font:600 15.5px Karla;color:var(--ink)}
.cxl span{font-size:15px;color:var(--slate);white-space:nowrap}
.rules li{font-size:15.5px;color:var(--ink-2);padding:9px 0;border-bottom:1px dashed var(--line-2);display:flex;justify-content:space-between;gap:18px}
.bk{position:sticky;top:124px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;
   box-shadow:0 6px 26px rgba(29,46,66,.07)}
.bk .amt{font:500 30px Newsreader,serif}
.bk .amt span{font:400 15.5px Karla;color:var(--mute)}
.bk .nofee{display:inline-flex;align-items:center;gap:7px;background:var(--lagoon-pale);color:var(--lagoon-d);
  font:600 12.5px Karla;padding:6px 11px;border-radius:100px;margin-top:12px}
.bkform{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);
   border-radius:11px;overflow:hidden;margin:18px 0 14px}
.bkform .fld{background:#fff;border:0;flex:none;padding:11px 13px}
.bkform .fld.full{grid-column:1/-1}
.note{font-size:13.5px;color:var(--mute);text-align:center;margin-top:13px;line-height:1.55}
.orwa{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:12px;background:#fff;
  border:1.5px solid var(--line);border-radius:10px;padding:13px;font:600 15px Karla;color:var(--ink);
  text-decoration:none;cursor:pointer}
.orwa:hover{border-color:var(--ink)}
.orwa svg{width:17px;height:17px;fill:#3F9E52}
.host-line{display:flex;gap:13px;align-items:center;margin-top:22px;padding-top:20px;border-top:1px solid var(--line-2)}
.av{width:42px;height:42px;border-radius:50%;background:var(--lagoon-pale);display:grid;place-items:center;
  font:600 15px Karla;color:var(--lagoon-d);flex:none}
.host-line p{font-size:14px;color:var(--slate);line-height:1.5}
.mbar{display:none}
@media(max-width:920px){
 .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;background:#fff;border-top:1px solid var(--line);
   padding:12px 20px;gap:14px;align-items:center;justify-content:space-between}
 body.has-mbar{padding-bottom:80px}
}

/* guests / children / pets picker */
.party{position:relative}
.srch .party{flex-grow:1.6}             /* takes more of the leftover space; basis unchanged so the bar still fits one row */
.party-btn{width:100%;border:0;background:none;font:500 15px Karla;color:var(--ink);padding:0;
  text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap}
.party-btn::after{content:"";width:8px;height:8px;border-right:1.6px solid var(--mute);
  border-bottom:1.6px solid var(--mute);transform:rotate(45deg) translate(-2px,-2px);flex:none}
.party[data-open] .party-btn::after{transform:rotate(-135deg) translate(-3px,-3px)}
.party-box{background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-bottom:14px}
.party-pop{position:absolute;z-index:80;top:calc(100% + 14px);left:0;width:320px;max-width:calc(100vw - 34px);
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:0 12px 36px rgba(29,46,66,.16);padding:4px 18px 16px}
.party-box .party-pop{left:-1px}
.cnt-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;
  border-bottom:1px solid var(--line-2)}
.cnt-row:last-child{border-bottom:0}
.cnt-row b{display:block;font:600 15.5px Karla;color:var(--ink)}
.cnt-row small{font-size:13px;color:var(--mute);display:block;margin-top:2px}
.cnt{display:flex;align-items:center;gap:13px;flex:none}
.cnt button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:#fff;
  color:var(--ink-2);font:400 19px/1 Karla;cursor:pointer;display:grid;place-items:center;padding:0}
.cnt button:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}
.cnt button:disabled{opacity:.32;cursor:not-allowed}
.cnt output{min-width:18px;text-align:center;font:600 15.5px Karla;font-variant-numeric:tabular-nums}
.ages{padding:15px 0 3px;border-top:1px solid var(--line-2)}
.ages>b{display:block;font:600 11.5px Karla;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mute);margin-bottom:11px}
.age-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.age{display:flex;align-items:baseline;gap:7px;border:1px solid var(--line);border-radius:9px;padding:8px 10px}
.age span{font-size:12.5px;color:var(--slate);white-space:nowrap}
.age input{width:100%;min-width:0;border:0;background:none;font:500 15px Karla;color:var(--ink);padding:0}
.age input::-webkit-outer-spin-button,.age input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.age input[type=number]{-moz-appearance:textfield;appearance:textfield}
.age.bad{border-color:var(--warn);background:var(--warn-bg)}
.party-note{margin-top:13px;font-size:13.5px;color:var(--mute);line-height:1.5}
.party-note.no{color:var(--warn)}

/* validation message */
.err{display:flex;gap:9px;align-items:flex-start;margin-top:14px;padding:11px 13px;font-size:14.5px;
  line-height:1.5;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:10px}
.err[hidden]{display:none}   /* display:flex above would otherwise beat the UA [hidden] rule */
.err svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;flex:none;margin-top:3px}
.bk .err{margin:0 0 14px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(20,32,46,.97);display:none;
  grid-template-rows:auto minmax(0,1fr) auto}
.lb.on{display:grid}
body.lb-open{overflow:hidden}
.lb-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;
  color:#DCE5EE;font:600 13.5px Karla;letter-spacing:.06em}
.lb-close{background:none;border:1.5px solid rgba(255,255,255,.28);color:#fff;width:40px;height:40px;
  border-radius:50%;cursor:pointer;display:grid;place-items:center;flex:none}
.lb-close svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.lb-close:hover{background:rgba(255,255,255,.12)}
.lb-stage{position:relative;padding:0 16px;min-height:0}
.lb-stage picture{display:contents}
.lb-stage img{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;border-radius:10px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(251,249,246,.92);border:0;
  width:46px;height:46px;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.lb-nav svg{width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:2}
.lb-nav:hover{background:#fff}
.lb-prev{left:14px}
.lb-next{right:14px}
.lb-cap{padding:14px 20px 22px;text-align:center;color:#C3D0DC;font-size:14.5px}
@media(max-width:700px){.lb-nav{width:40px;height:40px}.lb-prev{left:8px}.lb-next{right:8px}}

/* 404 */
.nf{padding:96px 0 110px;text-align:center}
.nf .kicker{margin-bottom:14px}
.nf p{color:var(--slate);margin-top:16px;font-size:17.5px}
.nf .btn{display:inline-block;margin-top:30px;text-decoration:none}

@media(prefers-reduced-motion:reduce){*{transition:none!important}}
