.site-header{position:sticky;top:.55rem;margin:.55rem auto 1rem;width:var(--content-width);display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;justify-content:space-between;gap:.5rem;padding:.75rem .8rem;border:1px solid var(--line);border-radius:var(--radius-xl);background:#fcf8f0eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 30px #3a454929;z-index:24}.site-brand{grid-column:1;grid-row:1;align-self:start;text-decoration:none;font-family:Allura,cursive;font-size:clamp(1.55rem,7vw,2.3rem);line-height:1;color:#254f64;letter-spacing:.01em;white-space:normal}.site-header nav{grid-column:3;grid-row:1;min-width:0;justify-self:end;align-self:start}.nav-toggle{border:1px solid rgba(41,73,84,.2);background:#fffaf4f2;border-radius:999px;padding:.34rem .82rem;font-family:inherit;color:var(--ink-900);font-size:.86rem;font-weight:600}#nav-list{margin:.65rem 0 0;padding:0;list-style:none;display:none;gap:.25rem}#nav-list.open{display:grid}#nav-list a{display:block;text-decoration:none;border-radius:999px;padding:.42rem .72rem;color:var(--ink-700);transition:background .2s ease,color .2s ease}#nav-list a:hover,#nav-list a:focus-visible{background:#3a8ea11f;color:var(--ink-900)}.language-toggle{grid-column:2;grid-row:1;justify-self:end;align-self:start;display:grid;grid-template-columns:repeat(var(--language-count, 2),minmax(0,1fr));position:relative;background:#fffaf4f2;border:1px solid rgba(41,73,84,.2);border-radius:999px;padding:.16rem}.language-toggle *{z-index:2}.language-glider{position:absolute;left:.16rem;top:.16rem;bottom:.16rem;width:calc((100% - .32rem) / var(--language-count, 2));border-radius:999px;background:#3a8ea12e;transform:translate(calc(var(--active-index, 0) * 100%));transition:transform .22s ease}.language-option{border:0;background:transparent;color:#20404d;min-width:36px;height:26px;padding:0 .52rem;border-radius:999px;font-size:.74rem;font-weight:700;cursor:pointer}.language-option.active{color:#225c6e}.language-option:focus-visible{outline:2px solid rgba(58,142,161,.45);outline-offset:2px}@media (min-width: 760px){.site-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.82rem 1rem}.site-brand{grid-column:auto;grid-row:auto;align-self:auto}.site-header nav{grid-column:auto;grid-row:auto;width:100%;min-width:0;align-self:auto}.nav-toggle{display:none}#nav-list{display:flex;justify-content:center;flex-wrap:wrap;gap:.2rem;margin:0}.language-toggle{grid-column:auto;grid-row:auto;justify-self:end;align-self:auto;padding:.22rem}.language-glider{left:.22rem;top:.22rem;bottom:.22rem;width:calc((100% - .44rem) / var(--language-count, 2))}.language-option{min-width:44px;height:30px;padding:0 .65rem;font-size:.78rem}}.hero{display:grid;gap:.9rem}.hero-stage{position:relative;min-height:clamp(29rem,82vh,52rem);overflow:hidden;border-radius:clamp(1.4rem,2vw,2rem);background:#d7d0bf}.hero-backdrop,.hero-scrim,.hero-content{position:absolute;top:0;right:0;bottom:0;left:0}.hero-backdrop{background-image:var(--hero-image, none);background-size:cover;background-position:center center;transform:scale(1.04)}.hero-scrim{background:linear-gradient(180deg,#09131b14,#09131b29 38%,#09131b8a 72%,#09131bd1)}.hero-content{position:relative;z-index:2;display:flex;align-items:end;padding:clamp(1rem,4vw,2rem)}.hero-copy{width:min(100%,36rem);color:#f7efe4;text-shadow:0 .06rem .8rem rgba(8,18,25,.22)}.hero-brand{margin:0 0 .55rem;font-family:Allura,cursive;font-size:clamp(2.2rem,9vw,4.4rem);line-height:.9;color:#f2dfc7}.hero .eyebrow{margin:0;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700;color:#f5e8d6e0}.hero h1{margin:.38rem 0 .7rem;max-width:11ch;color:#fff7ef;font-size:clamp(2.05rem,8vw,4.5rem);line-height:.96}.hero-copy>p:last-of-type{margin:0;max-width:34rem;color:#f7efe4e6;font-size:clamp(1rem,2.7vw,1.15rem);line-height:1.5}.hero-cta{margin-top:1rem}.hero-highlight-band{padding-inline:clamp(.15rem,1vw,.4rem)}.hero-highlights{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.55rem}.hero-highlights li{border-radius:999px;border:1px solid rgba(61,95,111,.14);background:#fff9eff0;padding:.48rem .85rem;font-size:.86rem;color:#2f4955;box-shadow:0 10px 24px #1422290f}@media (min-width: 768px){.hero-stage{min-height:clamp(31rem,74vh,50rem)}.hero-scrim{background:linear-gradient(90deg,#09131bbd,#09131b7a 34%,#09131b2e 58%,#09131b05 80%),linear-gradient(180deg,#f8ecd70a,#f8ecd71f)}.hero-content{align-items:center;padding:1.6rem}.hero-copy{width:min(42%,34rem)}.hero h1{max-width:10ch}}@media (min-width: 1200px){.hero-backdrop{background-position:center 56%}.hero-content{padding:2rem}.hero-copy{width:min(38%,34rem)}}@media (max-width: 640px){.hero-stage{min-height:clamp(28rem,78vh,42rem)}.hero h1{max-width:12ch}.hero-copy>p:last-of-type{max-width:24rem}.hero-highlights{display:grid;gap:.5rem}.hero-highlights li{width:fit-content;max-width:100%}}.section-header{margin-bottom:.9rem}.section-header h2{font-size:clamp(1.6rem,5.2vw,2.35rem);color:#213843}.section-header h2.decorative{font-family:Allura,cursive;font-size:clamp(2.2rem,8vw,4rem);font-weight:400;color:#245f79;line-height:.95}.section-header p{margin:.3rem 0 0;color:var(--ink-700);max-width:58ch}.section-header:after{content:"";display:block;width:min(220px,70%);height:1px;margin-top:.7rem;background:linear-gradient(90deg,#30505e61,#30505e00)}.immersive-gallery-section{background:transparent;border:0;box-shadow:none;padding:.2rem .05rem}.immersive-gallery-section .section-header{padding-inline:.2rem}.tabs-sticky-wrap{margin-bottom:1rem}.tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.35rem}.tab-button{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(45,85,99,.2);background:#fffaf4eb;border-radius:999px;padding:.56rem .95rem;color:#2d4957;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px #1326310f}.tab-button strong{display:inline-grid;place-items:center;min-width:1.7rem;height:1.7rem;padding-inline:.4rem;border-radius:999px;background:#2d556314;font-size:.78rem}.tab-button[aria-pressed=true]{background:linear-gradient(135deg,#2f7284,#2f6275);color:#fff;border-color:#285f6e8c}.tab-button[aria-pressed=true] strong{background:#ffffff2e}.gallery-collection-card{display:grid;gap:.9rem}.gallery-collection-head{display:flex;align-items:end;justify-content:space-between;gap:1rem}.gallery-collection-head h3{margin:0;padding-inline:.2rem}.gallery-collection-head p{margin:.25rem 0 0;padding-inline:.2rem;color:var(--ink-700);font-size:.95rem}.gallery-expand-button{border:1px solid rgba(45,85,99,.2);background:#fffaf4eb;border-radius:999px;padding:.6rem .95rem;color:#244654;font-weight:700;white-space:nowrap}.gallery-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.gallery-preview-tile{position:relative;display:grid;align-content:end;min-height:9.4rem;border:0;border-radius:1.1rem;padding:0;overflow:hidden;background:#d9e0e4;box-shadow:0 14px 30px #121e3c29;text-align:left}.gallery-preview-tile img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.gallery-preview-tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0711190a,#0711199e)}.gallery-preview-featured{grid-column:1 / -1;min-height:15rem}.gallery-preview-caption{position:relative;z-index:1;display:block;padding:1rem .9rem .9rem;color:#fff8ef;font-size:.9rem;line-height:1.35}.gallery-preview-more{place-items:center;align-content:center;background:linear-gradient(135deg,#244654f5,#122d37f5)}.gallery-preview-more:after{display:none}.gallery-preview-more span,.gallery-preview-more small{position:relative;z-index:1;color:#fff}.gallery-preview-more span{font-size:1.9rem;font-weight:700;line-height:1}.gallery-preview-more small{margin-top:.4rem;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}.gallery-local-grid{display:grid;gap:.85rem}.local-area-placeholder{margin-top:.9rem;background:transparent;border:0;box-shadow:none;padding:0}.local-area-placeholder>h3{margin:0 0 .35rem}.local-area-placeholder>p{margin:0;color:var(--ink-700);line-height:1.55}.local-area-copy-grid{display:grid;gap:1rem;margin-top:.85rem}.local-area-copy-block{background:transparent;border:0;border-radius:0;padding:0}.local-area-copy-block h4{margin:0;color:var(--ink-900);font-family:var(--font-serif);font-size:clamp(1.18rem,2vw,1.42rem);font-weight:500;line-height:1.25}.local-area-copy-block p{margin:.55rem 0 0;color:var(--ink-700);line-height:1.5}.local-area-copy-block ul{margin:.55rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem}.local-area-copy-block li{color:var(--ink-700);line-height:1.4}@media (min-width: 760px){.gallery-preview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-preview-featured{grid-column:span 2;grid-row:span 2;min-height:100%}.gallery-preview-tile{min-height:11rem}.gallery-local-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 900px){.local-area-copy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.gallery-collection-head{align-items:start;flex-direction:column}}.amenities-section .card{min-height:100%}.booking-layout{display:grid;gap:.75rem}.booking-price-groups{display:grid;gap:.62rem}.booking-week-definition{margin:.12rem 0 .58rem;color:var(--ink-700);font-size:.86rem}.booking-price-group{border:0;border-radius:.9rem;padding:.5rem;background:#fffaf485;box-shadow:0 6px 16px #20303b1f}.booking-price-group-header{margin:0 0 .42rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:#2d4957;font-size:.88rem}.booking-price-meta{display:inline-flex;align-items:baseline;gap:.32rem}.booking-price-meta strong{font-size:1.08rem}.booking-price-meta small{font-size:.72rem;color:#5f6f77}.booking-week-grid{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.48rem}.booking-week-pill{display:grid;gap:.14rem;border-radius:.68rem;padding:.46rem .34rem;text-align:center;border:1px solid rgba(56,83,94,.2)}.booking-week-pill-label{font-weight:700}.booking-week-pill-dates{font-size:.72rem;opacity:.9}.booking-week-pill.available{background:#fffaf4e6;color:#2d4957}.booking-week-pill.booked{background:linear-gradient(135deg,#e78686,#d25252);border-color:#962a2a52;color:#fff9f9}.booking-week-pill.current{outline:2px solid #3a8ea1;outline-offset:-2px}.booking-week-legend{margin-top:.62rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem 1.25rem;color:var(--ink-700);font-size:.84rem}.booking-week-legend-status{display:flex;flex-wrap:wrap;width:100%;justify-content:space-between;gap:.48rem .9rem}.booking-week-legend-status span{display:inline-flex;align-items:center;gap:.36rem}.booking-status-note{margin:.52rem 0 0;color:#7f5315;font-size:.82rem}.booking-legend-swatch{width:.84rem;height:.84rem;border-radius:.22rem;border:1px solid rgba(56,83,94,.22);background:#fffaf4e6}.booking-legend-swatch.available{background:#fffaf4e6}.booking-legend-swatch.booked{background:linear-gradient(135deg,#e78686,#d25252);border-color:#962a2a52}.booking-legend-swatch.current{background:#fffaf4e6;outline:2px solid #3a8ea1;outline-offset:-2px}.booking-bullet-list{margin:0;padding-left:1.08rem;display:grid;gap:.3rem}@media (max-width: 760px){.booking-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-week-legend{flex-direction:column;align-items:flex-start}.booking-week-legend-status{justify-content:flex-start}}@media (min-width: 760px){.booking-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-card-bookable{grid-column:1 / -1}}.location-label{color:var(--ink-700)}.map-frame{margin-top:.8rem;border-radius:var(--radius-lg);border:1px solid rgba(56,83,94,.18);overflow:hidden}.map-frame iframe{width:100%;min-height:280px;border:0}.contact-card p{margin:0 0 .55rem}.contact-card p span{font-weight:700}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;align-items:center;background:#0d1921e6;padding:1rem;z-index:2000}.lightbox[hidden]{display:none}.lightbox-shell{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;width:min(100%,1180px);margin-inline:auto}.lightbox-figure{margin:0;display:grid;gap:.85rem;justify-items:center}.lightbox-figure img{width:100%;max-width:min(100%,940px);max-height:76vh;border-radius:1rem;object-fit:contain;touch-action:pan-y;box-shadow:0 24px 60px #00000057}.lightbox-figure figcaption{width:min(100%,940px);display:grid;gap:.28rem;color:#e5edf1}.lightbox-figure strong{font-size:1.02rem;font-weight:700}.lightbox-figure span{color:#e5edf1db}.lightbox-figure small{color:#e5edf1ad}.lightbox-close,.lightbox-nav{display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#fff;border-radius:999px}.lightbox-close{position:absolute;top:.9rem;right:1rem;width:2.8rem;height:2.8rem;font-size:2rem}.lightbox-nav{width:3rem;height:3rem;padding:0;font-size:1.75rem}.lightbox-nav:disabled{opacity:.34}@media (max-width: 760px){.lightbox{padding:.75rem}.lightbox-shell{grid-template-columns:1fr;gap:.9rem}.lightbox-nav{position:absolute;bottom:1.1rem;z-index:1}.lightbox-nav:first-of-type{left:1rem}.lightbox-nav:last-of-type{right:1rem}.lightbox-figure img{max-height:70vh}.lightbox-figure figcaption{padding-inline:.2rem}}.ai-assistant-anchor{width:0;height:0;overflow:hidden}.ai-launcher{position:fixed;left:max(.85rem,env(safe-area-inset-left));bottom:calc(.85rem + env(safe-area-inset-bottom));border:1px solid rgba(49,107,121,.34);border-radius:999px;background:linear-gradient(135deg,#2f7f93,#2f6b82);color:#fff;font:inherit;font-size:.92rem;font-weight:800;padding:.74rem 1.15rem;box-shadow:0 14px 30px #2f617152;z-index:1400}.ai-chat-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1922273d;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1490}.ai-chat-backdrop.open{opacity:1;pointer-events:auto}.ai-chat-dialog{position:fixed;left:max(.85rem,env(safe-area-inset-left));bottom:calc(.85rem + env(safe-area-inset-bottom));width:min(390px,calc(100vw - 1.7rem));height:min(80vh,740px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid rgba(56,83,94,.2);border-radius:1.2rem;background:#fcf8f1f2;box-shadow:0 26px 56px #29383e3d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translateY(12px) scale(.98);opacity:0;pointer-events:none;transition:transform .24s ease,opacity .24s ease;z-index:1500;overflow:hidden}.ai-chat-dialog.open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}.ai-chat-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.85rem .95rem .72rem;border-bottom:1px solid rgba(56,83,94,.16)}.ai-chat-header h2{margin:0;font-size:1.16rem}.ai-chat-header p{margin:.2rem 0 0;color:var(--ink-700);font-size:.83rem}.ai-chat-close{width:1.95rem;height:1.95rem;border:1px solid rgba(56,83,94,.18);border-radius:999px;background:#fff8ef;color:var(--ink-900);font:inherit;font-size:.95rem}.ai-chat-body{overflow-y:auto;padding:.84rem .84rem .62rem;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}.ai-chat-hint,.ai-chat-thinking{margin:0;color:var(--ink-700)}.ai-message{width:fit-content;max-width:92%;border-radius:1rem;padding:.62rem .76rem;display:grid;gap:.35rem}.ai-message p{margin:0}.ai-message.user{align-self:flex-end;background:linear-gradient(135deg,#2f7f93,#2f6b82);color:#fff;border-top-right-radius:.35rem}.ai-message.assistant{align-self:flex-start;background:#fffaf2;color:var(--ink-900);border:1px solid rgba(56,83,94,.16);border-top-left-radius:.35rem}.ai-message.error{border-color:#f4c5bd;background:#ffe9e4;color:#7d2e25}.ai-meta{color:var(--ink-700);font-size:.78rem}.ai-warning{color:#7b5e1f}.ai-chat-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end;padding:.68rem .78rem .84rem;border-top:1px solid rgba(56,83,94,.16);background:#fbf5ead6}.ai-chat-input textarea{width:100%;min-height:2.45rem;max-height:8rem;resize:vertical;border-radius:1rem;border:1px solid rgba(56,83,94,.24);background:#fffdf8;color:var(--ink-900);font:inherit;padding:.62rem .75rem}.ai-chat-input textarea::placeholder{color:var(--ink-700)}.ai-send{border:0;border-radius:999px;background:linear-gradient(135deg,#2f7f93,#2f6b82);color:#fff;font:inherit;font-weight:700;padding:.62rem .96rem;min-height:2.45rem}.ai-send:disabled{opacity:.55}@media (max-width: 760px){.ai-chat-dialog{left:.55rem;right:.55rem;width:auto;height:min(83vh,760px)}}.to-top-button{position:fixed;right:max(.85rem,env(safe-area-inset-right));bottom:calc(.85rem + env(safe-area-inset-bottom));width:2.8rem;height:2.8rem;border:1px solid rgba(49,107,121,.34);border-radius:999px;background:linear-gradient(135deg,#2f7f93,#2f6b82);color:#fff;font-size:1.08rem;font-weight:700;display:grid;place-items:center;box-shadow:0 14px 30px #2f617152;z-index:18;opacity:0;transform:translateY(10px) scale(.96);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.to-top-button.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}:root{--sand-050: #f8f4ec;--sand-100: #f2ebde;--sand-150: #ebe1d1;--sand-200: #e0d4c3;--ocean-300: #86bbc4;--ocean-500: #3a8ea1;--ocean-700: #2f6f7c;--olive-400: #7a8f63;--olive-600: #5d6e4a;--ink-900: #20303b;--ink-700: #455861;--line: rgba(56, 77, 85, .18);--surface: rgba(255, 250, 243, .9);--surface-strong: #fff9f0;--surface-ocean: #edf4f4;--shadow-soft: 0 18px 44px rgba(46, 57, 61, .14);--shadow-card: 0 10px 24px rgba(46, 57, 61, .12);--radius-xl: 1.4rem;--radius-lg: 1.05rem;--radius-md: .85rem;--content-width: min(1220px, calc(100% - 1.25rem) )}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{width:100%;max-width:100%}body{margin:0;font-family:Manrope,Segoe UI,sans-serif;color:var(--ink-900);line-height:1.6;background:radial-gradient(1100px 580px at 10% -15%,rgba(132,179,190,.33),transparent 58%),radial-gradient(900px 540px at 86% 0%,rgba(128,154,111,.22),transparent 56%),linear-gradient(180deg,#f6efe4,#f3ecdf 25%,#efe7d8 58%,#f5efe5);overflow-x:hidden}a{color:inherit}img,iframe{max-width:100%}figure{margin:0}h1,h2,h3{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-weight:600;letter-spacing:.01em;line-height:1.12}.hero,.section,footer{width:100%;border-radius:var(--radius-xl)}.section{padding:1rem}.cards{display:grid;gap:.75rem}.card,.contact-card,.local-area-placeholder,.booking-card{border-radius:var(--radius-lg)}.card h3,.contact-card h3,.local-area-placeholder h3,.booking-card h3{font-size:1.25rem;margin-bottom:.38rem}.card p,.local-area-placeholder p{color:var(--ink-700)}.card ul{margin:.65rem 0 0;padding-left:1.1rem;padding-right:1.1rem}.primary-cta{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;border:1px solid rgba(45,97,110,.28);background:linear-gradient(135deg,var(--ocean-500),var(--ocean-700));color:#fff;font-weight:700;padding:.72rem 1.2rem;box-shadow:0 12px 28px #2353604d;transition:transform .2s ease,box-shadow .2s ease}.primary-cta:hover,.primary-cta:focus-visible{transform:translateY(-1px);box-shadow:0 14px 30px #2353605c}.contact-card a,.section-header p,.ai-message p{overflow-wrap:anywhere;word-break:break-word}@media (min-width: 760px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.section,footer{padding:1.2rem}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 370px){.section,footer{padding:.82rem}}.skip-link{position:absolute;left:1rem;top:-3rem;background:var(--ink-900);color:#fff;padding:.6rem .95rem;border-radius:.65rem;z-index:100}.skip-link:focus{top:1rem}.bg-orb{position:fixed;border-radius:999px;filter:blur(32px);pointer-events:none;z-index:-1}.bg-orb-one{width:17rem;height:17rem;left:-5rem;top:12rem;background:#5691a33b}.bg-orb-two{width:18rem;height:18rem;right:-6rem;top:34rem;background:#86a16a38}main{width:var(--content-width);max-width:1220px;margin:0 auto 3rem;display:grid;gap:1.15rem}main>*{min-width:0}.config-error{background:#ffe9e4;border:1px solid #f4c5bd;color:#7d2e25;border-radius:var(--radius-md);padding:.8rem .95rem}footer{padding:1rem;margin-bottom:1rem;text-align:center;background:#faf4e9e0}.loading-shell{min-height:100vh;display:grid;place-items:center;color:var(--ink-700)}@media (min-width: 1024px){main{gap:1.42rem}}@media (max-width: 370px){.site-header,main{width:calc(100% - .7rem)}}
