*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-text);margin:0;color:var(--ink);background:var(--ivory);line-height:1.5}img{max-width:100%;height:auto}a{text-decoration:none;color:inherit}button,input{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400}h2{font-size:clamp(2rem,3.2vw,3.35rem);line-height:1.15}h3{font-size:1.25rem}p{line-height:1.7} .shell{width:min(var(--sc-container),calc(100% - var(--sc-page-gutter) - var(--sc-page-gutter)));margin-inline:auto}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen-reader-text:focus{width:auto;height:auto;clip:auto;background:white;color:var(--deep);z-index:2000}.skip-link:focus{top:10px;left:10px;padding:10px;position:fixed}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:11px 22px;border-radius:12px;border:0;font-size:.88rem;font-weight:700;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f1a838;outline-offset:3px}.button-sand{background:var(--sand);color:#183747}.button-sea{background:var(--sea);color:white}.button-outline{background:transparent;border:1px solid var(--sea);color:var(--sea)}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--sea);font:700 .67rem var(--font-text)}.eyebrow.light{color:#fff}.eyebrow-line{display:inline-block;width:48px;height:1px;background:currentColor;vertical-align:middle;margin-left:12px}
.site-header{position:absolute;inset:0 0 auto;z-index:20;color:white;background:linear-gradient(180deg,rgba(8,38,48,.58),rgba(8,38,48,0))}.header-inner{height:90px;display:flex;align-items:center;gap:22px}.brand{margin-right:auto;display:flex;align-items:center;min-width:160px}.brand-text{font-family:var(--font-display);font-size:1.65rem;font-style:normal;font-weight:400}.brand-logo{display:block;max-width:190px;max-height:68px;width:auto;height:auto;object-fit:contain}.main-nav{margin-left:auto}.menu-items{display:flex;gap:25px;align-items:center;list-style:none;margin:0;padding:0;font-size:.83rem;font-weight:700}.main-nav a:hover{color:var(--sand)}.header-cta{font-size:.81rem;padding:10px 16px;min-height:40px}.menu-toggle{display:none;background:transparent;border:1px solid #ffffff9c;color:white;padding:7px 11px;border-radius:6px}
.hero{min-height:590px;display:flex;align-items:center;position:relative;background-color:#0d5365;background-image:linear-gradient(90deg,rgba(2,35,49,.71) 0%,rgba(2,35,49,.15) 65%),var(--hero-image);background-size:cover;background-position:center center;color:white}.hero-content{position:relative;z-index:1;padding-top:60px;padding-bottom:105px}.hero h1{font-size:clamp(3.8rem,6.3vw,7rem);line-height:1.02;letter-spacing:-.045em;max-width:620px;margin:15px 0}.hero h1 em{font-style:normal;color:var(--sand)}.hero p{max-width:415px;font-size:1rem;line-height:1.7;margin:0 0 25px}.booking-strip{z-index:3;position:relative;margin-top:-43px;background:white;border-radius:14px;box-shadow:0 15px 42px #1c455024;padding:19px 21px 13px}.booking-strip-heading{font-family:var(--font-display);font-size:1.15rem;margin-bottom:9px}.booking-fields{display:grid;grid-template-columns:1fr 1fr .75fr auto;gap:12px}.booking-fields label{display:flex;flex-direction:column;gap:3px;color:#47616b;font-size:.76rem;font-weight:700;border-right:1px solid #dee5e6;padding-right:12px}.booking-fields input{background:transparent;border:0;min-height:29px;color:var(--ink);font-weight:700;max-width:100%;width:100%}.booking-fields button{align-self:end}.booking-note{color:#7b858a;font-size:.67rem;margin:9px 0 0}
.feature-band{background:#f8f9f6;margin-top:-42px;padding-top:78px;padding-bottom:27px}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.features-grid>div{display:flex;align-items:center;gap:14px;border-right:1px solid #d2d5d3}.features-grid>div:last-child{border-right:none}.features-grid b{display:block;font-size:.8rem}.features-grid span:not(.feature-icon){display:block;color:#64717a;font-size:.69rem}.feature-icon{font-size:2rem;line-height:1;color:var(--sea)}.section{padding:77px 0}.section-header.centered{text-align:center}.section-header h2{margin:13px 0}.section-header p{max-width:650px;margin:0 auto 27px;color:var(--sub)}.stays-section{background:#fff}.stays-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.stay-card{background:var(--ivory);border-radius:14px;overflow:hidden;min-width:0;position:relative;box-shadow:0 3px 14px #173e4712}.stay-card img,.stay-placeholder{width:100%;height:176px;object-fit:cover;display:block}.stay-placeholder{background:linear-gradient(135deg,#efe6d4,#b2cbc7);display:grid;place-items:center;color:#31616c;font-size:.8rem}.stay-info{position:relative;padding:13px 14px 17px}.stay-location{text-transform:uppercase;letter-spacing:.08em;font-size:.61rem;font-weight:700;color:var(--teal)}.stay-info h3{font-family:var(--font-display);font-size:1rem;font-weight:400;margin:4px 0}.stay-info p{color:#556a71;font-size:.71rem;margin-bottom:10px}.stay-occupancy{font-size:.66rem;display:block;max-width:82%;color:#49626a}.stay-card-arrow{position:absolute;right:13px;bottom:14px;border-radius:50%;background:#efd3a9;width:28px;height:28px;display:grid;place-items:center}.section-action{text-align:center;margin-top:26px}.map-section{background:#f7f2e9}.map-grid{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:55px}.map-visual{min-height:330px;border-radius:28px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(130deg,#124c5cce,#0d4354bb),url('../images/model30-wooden-exterior.webp') center/cover}.map-visual-inner{color:white;text-align:center;padding:45px;display:grid;gap:14px}.map-visual strong{font:400 clamp(1.8rem,3.5vw,3rem)/1.2 var(--font-display)}.map-support-text{font-size:.8rem;color:#edf1ee}.map-copy h2{margin:14px 0}.map-copy p{color:var(--sub)}.small-muted{font-size:.73rem;color:#7b8689!important}.dining-section{background:#fff}.dining-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:45px}.dining-copy h2{margin:13px 0}.dining-copy p{max-width:410px;color:var(--sub)}.dining-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dining-photos img{height:330px;width:100%;object-fit:cover;border-radius:17px}.memories-section{background:linear-gradient(100deg,#e8d4c2,#f8f4ed)}.memories-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:48px;align-items:center}.memories-layout h2{margin:15px 0}.memories-layout p{max-width:370px}.memories-photo-area{height:300px;border:2px dashed #b8a58f;border-radius:22px;display:grid;place-items:center;text-align:center;padding:25px;color:#557078;background:#ffffff50;font-size:.83rem}.experiences-section{background:#fff}.experiences-section h2{margin:12px 0 29px}.experience-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.experience-grid>div{padding:8px 22px;border-right:1px solid #e1ded6;display:grid;gap:6px;text-align:center}.experience-grid>div:last-child{border-right:0}.experience-grid strong{font-size:.92rem}.experience-grid span{font-size:.73rem;color:var(--sub)}.experiences-section .small-muted{margin-top:24px;text-align:center}.final-cta{padding:68px 0;color:white;background:linear-gradient(110deg,#0f4252e8,#105b6fba),url('../images/palace-sea-balcony.webp') center/cover}.final-cta h2{max-width:550px;margin:12px 0}.final-cta p{margin-bottom:20px}.site-footer{background:#0c3543;color:#fff;padding:54px 0 19px}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:40px}.footer-top h2{font-size:1.65rem}.footer-top h3{font-family:var(--font-display);font-size:.85rem;font-weight:400}.footer-top p,.footer-top a{font-size:.75rem;color:#ccdde0;line-height:1.9;display:block}.footer-logo{max-width:160px;max-height:90px;object-fit:contain}.footer-bottom{border-top:1px solid #ffffff35;margin-top:36px;padding-top:16px;display:flex;justify-content:space-between;gap:20px;font-size:.7rem;color:#bdd2d8}.interior-page{padding-top:155px;padding-bottom:80px;min-height:70vh}.interior-page .page-heading{border-bottom:1px solid var(--line);margin-bottom:32px;padding-bottom:20px}.prose{max-width:880px;margin-inline:auto}.prose a:not(.button){color:var(--sea);text-decoration:underline}.prose img{border-radius:12px}.listing-entry{border-bottom:1px solid var(--line);padding:22px 0}
@media(max-width:1000px){.header-inner{height:80px}.menu-items{gap:14px}.stays-grid{grid-template-columns:repeat(3,1fr)}.features-grid{grid-template-columns:repeat(2,1fr);gap:22px}.features-grid>div:nth-child(even){border-right:0}.dining-grid{gap:30px}}
@media(max-width:760px){.site-header{background:#103b47e9}.header-inner{height:70px;gap:12px}.brand{min-width:0}.brand-text{font-size:1.28rem}.brand-logo{max-width:148px;max-height:52px}.header-cta{margin-left:auto;padding:9px 11px;min-height:34px;font-size:.68rem}.menu-toggle{display:block;order:4}.main-nav{display:none;position:absolute;top:70px;left:0;right:0;background:#103b47;padding:18px}.main-nav.is-open{display:block}.menu-items{display:grid;gap:17px}.hero{min-height:560px;background-position:58% center}.hero-content{padding-top:92px;padding-bottom:135px}.hero h1{font-size:clamp(3.1rem,11vw,4.6rem)}.hero p{max-width:355px;font-size:.87rem}.booking-strip{margin-top:-73px;padding:14px}.booking-fields{grid-template-columns:1fr 1fr;gap:10px}.booking-fields label{border:1px solid #e5e9e9;border-radius:8px;padding:7px 9px}.booking-fields button{grid-column:1/-1;width:100%}.feature-band{padding-top:98px}.features-grid{grid-template-columns:repeat(2,1fr);gap:18px}.features-grid>div{gap:9px}.features-grid b{font-size:.7rem}.features-grid span:not(.feature-icon){font-size:.61rem}.feature-icon{font-size:1.45rem}.section{padding:54px 0}h2{font-size:clamp(1.9rem,6.5vw,2.6rem)}.stays-grid{grid-template-columns:repeat(2,1fr);gap:11px}.stay-card img,.stay-placeholder{height:135px}.stay-info{padding:11px}.stay-info h3{font-size:.86rem}.stay-info p,.stay-occupancy{font-size:.62rem}.stay-card-arrow{right:8px;bottom:8px;width:23px;height:23px}.map-grid,.dining-grid,.memories-layout{grid-template-columns:1fr;gap:23px}.map-visual{min-height:245px}.dining-photos img{height:225px}.memories-photo-area{height:200px}.experience-grid{grid-template-columns:repeat(2,1fr);row-gap:22px}.experience-grid>div:nth-child(even){border:0}.footer-top{grid-template-columns:repeat(2,1fr);gap:23px}.footer-bottom{flex-direction:column}.interior-page{padding-top:100px}}
@media(max-width:420px){.stays-grid{grid-template-columns:1fr}.stay-card img,.stay-placeholder{height:205px}.booking-strip-heading{font-size:1rem}.features-grid{grid-template-columns:1fr 1fr}.site-header .header-cta{font-size:.61rem}.brand-text{font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Approved mockup refinement: seven distinct booking groups in a continuous carousel. */
.stays-grid { grid-template-columns: repeat(7, minmax(175px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 14px; scroll-snap-type: x proximity; scrollbar-width: thin; }
.stay-card { scroll-snap-align: start; }
.stay-card img, .stay-placeholder { height: 138px; }
.map-section { background: #f7f2e9; }
.map-visual { background-image: linear-gradient(130deg,#124c5c99,#0d435477),url('../images/model30-wooden-exterior.webp'); }
.feature-icon { display: inline-flex; align-items: center; justify-content: center; }
.feature-icon .sc-icon { height: 28px; width: 28px; }
.experience-icon { display: flex; justify-content: center; color: var(--sea); margin-bottom: 8px; }
.experience-icon .sc-icon { height: 38px; width: 38px; }
@media (min-width: 1330px) { .stays-grid { grid-template-columns: repeat(7, minmax(148px, 1fr)); overflow: visible; } }
@media (max-width: 760px) { .stays-grid { display: flex; gap: 12px; margin-inline: -16px; padding: 0 16px 18px; }
  .stay-card { flex: 0 0 min(78vw, 285px); } .stay-card img,.stay-placeholder { height: 174px; } }

.stay-card-link { position: absolute; inset: 0; z-index: 1; }
.stay-card:focus-within { outline: var(--sc-focus-ring); outline-offset: 2px; }
.stay-card-arrow .sc-icon { width: 17px; height: 17px; }
