:root{--ink:#29251f;--espresso:#2d241d;--sand:#d4aa78;--cream:#f5f0e7;--white:#fffdf9;--muted:#7b7167;--aqua:#7aa5a2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}.nav{height:86px;padding:0 clamp(22px,4vw,68px);display:flex;align-items:center;justify-content:space-between;background:var(--white);position:relative;z-index:3}.brand{display:flex;flex-direction:column;line-height:1}.brand span{font-family:"Italiana",serif;font-size:1.65rem;letter-spacing:.2em}.brand small{margin-top:7px;font-size:.56rem;letter-spacing:.25em}.nav nav{display:flex;gap:30px;font-size:.86rem}.nav nav a{position:relative}.nav nav a:after{content:"";height:1px;width:0;background:var(--ink);position:absolute;left:0;bottom:-5px;transition:.25s}.nav nav a:hover:after{width:100%}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--white);color:var(--espresso);padding:15px 24px;border:1px solid var(--white);font-size:.86rem;font-weight:600;letter-spacing:.03em;transition:.25s}.button:hover{background:transparent;color:var(--white)}.button-small{background:var(--espresso);color:#fff;padding:11px 20px;border-color:var(--espresso)}.button-small:hover{color:var(--espresso);background:transparent}.hero{min-height:calc(100svh - 86px);position:relative;display:flex;align-items:center;overflow:hidden;color:#fff}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,19,14,.66) 0%,rgba(24,19,14,.25) 50%,rgba(24,19,14,.05) 80%)}.hero-copy{position:relative;z-index:1;max-width:760px;margin-left:clamp(24px,8vw,140px);padding:72px 0}.eyebrow{text-transform:uppercase;font-size:.7rem;letter-spacing:.25em;font-weight:600;margin:0 0 25px}.eyebrow.dark{color:#8d694b}.hero h1,.intro h2,.rooms h2,.location h2,.final-cta h2{font-family:"Italiana",serif;font-weight:400;line-height:1.02;margin:0}.hero h1{font-size:clamp(3.5rem,7vw,7.5rem);max-width:690px}.hero-copy>p:not(.eyebrow){font-size:1.12rem;max-width:480px;margin:26px 0 34px}.actions{display:flex;align-items:center;gap:28px}.text-link{font-size:.86rem}.text-link span{margin-left:7px}.hero-note{position:absolute;z-index:1;right:clamp(22px,4vw,68px);bottom:35px;display:flex;align-items:center;gap:13px;font-size:.74rem;letter-spacing:.06em}.hero-note span{font-family:"Italiana",serif;font-size:1.5rem}.intro{padding:130px clamp(24px,8vw,140px);display:grid;grid-template-columns:1fr 2fr;gap:30px}.intro h2,.rooms h2,.location h2,.final-cta h2{font-size:clamp(2.7rem,5vw,5rem)}.intro h2 em{color:#9b7452;font-weight:400}.lede{max-width:620px;margin:35px 0 0;color:var(--muted);font-size:1.08rem}.features{margin:0 clamp(24px,4vw,68px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #cfc4b5;border-bottom:1px solid #cfc4b5}.features article{padding:48px 35px 55px;border-right:1px solid #cfc4b5}.features article:last-child{border-right:0}.features span{font-size:.66rem;color:#a07b5b}.features h3{font-family:"Italiana",serif;font-size:2rem;font-weight:400;margin:22px 0 10px}.features p{color:var(--muted);max-width:290px;margin:0}.rooms{display:grid;grid-template-columns:1.05fr .95fr;margin-top:130px;min-height:650px}.room-art{background:#c9a06f;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.room-art p{font-family:"Italiana",serif;font-size:clamp(4rem,10vw,9rem);letter-spacing:.1em;color:rgba(255,255,255,.9);position:relative;z-index:2}.sun{position:absolute;width:250px;height:250px;background:#efd9b8;border-radius:50%;top:75px;right:12%}.dune{position:absolute;background:#b68759;border-radius:50% 50% 0 0}.dune-one{width:110%;height:45%;bottom:-12%;left:-20%;transform:rotate(6deg)}.dune-two{width:90%;height:35%;bottom:-10%;right:-25%;background:#a87950;transform:rotate(-8deg)}.room-copy{padding:90px clamp(35px,7vw,110px);background:var(--white);display:flex;flex-direction:column;justify-content:center}.room-copy>p:not(.eyebrow){color:var(--muted);max-width:480px}.room-copy ul{list-style:none;padding:0;margin:18px 0 32px;border-top:1px solid #ded5ca}.room-copy li{padding:12px 0;border-bottom:1px solid #ded5ca}.dark-button{background:var(--espresso);border-color:var(--espresso);color:#fff;align-self:flex-start}.dark-button:hover{background:transparent;color:var(--espresso)}.location{background:var(--espresso);color:#fff;padding:120px clamp(24px,8vw,140px);display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end}.location-card{border-top:1px solid rgba(255,255,255,.25);padding-top:27px}.location-card>p:first-child{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:#cbaa86}.location-card h3{font-family:"Italiana",serif;font-size:2.15rem;font-weight:400;margin:20px 0 14px}.location-card>p{color:#d4cbc2}.location-card a{display:inline-block;margin-top:16px;border-bottom:1px solid #fff;padding-bottom:4px}.final-cta{text-align:center;padding:130px 20px}.final-cta .button{margin-top:35px}footer{background:#17130f;color:#cfc5b8;padding:42px clamp(24px,4vw,68px);display:flex;justify-content:space-between;align-items:center;font-size:.77rem}.inverse span{color:#fff}.inverse small{color:#a99b8b}@media(max-width:800px){.nav{height:76px}.nav nav{display:none}.brand span{font-size:1.3rem}.hero{min-height:calc(100svh - 76px)}.hero-copy{margin:0 24px;padding-top:50px}.hero h1{font-size:3.55rem}.veil{background:linear-gradient(90deg,rgba(24,19,14,.7),rgba(24,19,14,.18))}.actions{align-items:flex-start;flex-direction:column;gap:18px}.hero-note{display:none}.intro{grid-template-columns:1fr;padding:90px 24px}.features{grid-template-columns:1fr}.features article{border-right:0;border-bottom:1px solid #cfc4b5;padding:34px 12px}.features article:last-child{border-bottom:0}.rooms{grid-template-columns:1fr;margin-top:90px}.room-art{min-height:430px}.room-copy{padding:70px 24px}.location{grid-template-columns:1fr;padding:90px 24px;gap:55px}.final-cta{padding:90px 24px}footer{align-items:flex-start;gap:30px;flex-direction:column}.button-small{padding:9px 14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hotel-map{padding:130px clamp(24px,4vw,68px);background:#eee5d8;scroll-margin-top:30px}.hotel-map-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;max-width:1300px;margin:0 auto 48px}.hotel-map-heading h2{font-family:"Italiana",serif;font-size:clamp(2.7rem,5vw,5rem);font-weight:400;line-height:1.02;margin:0}.hotel-map-heading>p{max-width:520px;color:var(--muted);margin:0}.map-tabs{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;border:1px solid #c8b8a5;background:rgba(255,253,249,.55)}.map-tab{appearance:none;border:0;border-right:1px solid #c8b8a5;background:transparent;color:var(--muted);padding:20px 28px;text-align:left;font:600 1rem "DM Sans",sans-serif;cursor:pointer;transition:.2s}.map-tab:last-child{border-right:0}.map-tab span{display:block;margin-top:3px;font-size:.75rem;font-weight:400;letter-spacing:.04em}.map-tab.active{background:var(--espresso);color:#fff}.map-tab:focus-visible,.map-image-button:focus-visible,.map-dialog-close:focus-visible{outline:3px solid #b2875f;outline-offset:3px}.map-panel{max-width:1300px;margin:0 auto}.map-panel[hidden]{display:none}.map-image-button{position:relative;display:block;width:100%;padding:0;border:0;background:var(--white);cursor:zoom-in;overflow:hidden}.map-image-button img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#f8f4ed}.map-image-button span{position:absolute;right:18px;bottom:18px;padding:11px 16px;background:rgba(45,36,29,.92);color:#fff;font-size:.78rem;letter-spacing:.03em}.map-panel-actions{display:flex;justify-content:flex-end;gap:26px;padding:22px 0 0;font-size:.86rem}.map-panel-actions a{border-bottom:1px solid #8d694b;padding-bottom:3px}.map-dialog{width:min(96vw,1600px);max-width:none;padding:54px 16px 16px;border:0;background:#f7f2e9;box-shadow:0 24px 80px rgba(25,20,16,.35)}.map-dialog::backdrop{background:rgba(20,16,12,.82)}.map-dialog img{display:block;width:100%;height:auto;max-height:84vh;object-fit:contain}.map-dialog-close{position:absolute;top:12px;right:16px;border:0;background:transparent;color:var(--espresso);font:600 .9rem "DM Sans",sans-serif;cursor:pointer;padding:8px}.map-dialog[open]{animation:map-fade .2s ease-out}@keyframes map-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@media(max-width:800px){.hotel-map{padding:90px 24px}.hotel-map-heading{grid-template-columns:1fr;gap:22px;margin-bottom:34px}.map-tabs{grid-template-columns:1fr}.map-tab{border-right:0;border-bottom:1px solid #c8b8a5;padding:17px 20px}.map-tab:last-child{border-bottom:0}.map-image-button{overflow-x:auto}.map-image-button img{width:1120px;max-width:none;height:auto;aspect-ratio:auto;object-fit:initial}.map-image-button span{position:sticky;display:inline-block;left:14px;bottom:14px;margin-top:-52px;float:left}.map-panel-actions{justify-content:flex-start;flex-direction:column;gap:14px;padding-top:24px}.map-panel-actions a{align-self:flex-start}.map-dialog{width:100vw;height:100vh;margin:0;max-height:none;padding:54px 8px 8px;overflow:auto}.map-dialog img{width:1450px;max-width:none;max-height:none}}
.brand-logo{width:210px;height:76px;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.brand-logo img{display:block;width:100%;height:100%;object-fit:contain}@media(max-width:800px){.brand-logo{width:160px;height:62px}}
.nav{background:#f3efeb}

.hotel-tour-video{width:min(100%,720px);margin:0 auto 72px;padding:14px;background:var(--white);box-shadow:0 24px 60px rgba(45,36,29,.14)}
.hotel-tour-video video{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#17130f}
.map-subheading{max-width:1300px;margin:0 auto 26px;border-top:1px solid #c8b8a5;padding-top:40px}
.map-subheading .eyebrow{margin-bottom:12px}
.map-subheading h3{font-family:"Italiana",serif;font-size:clamp(2rem,3vw,3.2rem);font-weight:400;line-height:1.05;margin:0}
@media(max-width:800px){.hotel-tour-video{margin-bottom:56px;padding:8px}.map-subheading{padding-top:32px;margin-bottom:22px}}

/* Refined coastal presentation */
.hotel-map{background:#f4efe7;padding-top:150px;padding-bottom:150px}
.hotel-map-heading{margin-bottom:64px}
.hotel-tour-video{position:relative;width:min(100%,620px);padding:10px;margin-bottom:96px;border:1px solid rgba(76,61,48,.16);box-shadow:0 22px 55px rgba(45,36,29,.09)}
.hotel-tour-video video{background:#f8f4ed}
.video-toggle{position:absolute;right:24px;bottom:24px;border:1px solid rgba(255,255,255,.55);background:rgba(36,29,23,.72);color:#fff;padding:9px 14px;font:500 .74rem "DM Sans",sans-serif;letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(8px)}
.video-toggle:focus-visible{outline:3px solid #b2875f;outline-offset:3px}
.map-subheading{padding-top:48px;margin-bottom:30px;border-color:rgba(76,61,48,.2)}
.map-tabs{border-color:rgba(76,61,48,.2);background:transparent}
.map-tab{padding:18px 24px;border-color:rgba(76,61,48,.2);font-weight:500}
.map-tab.active{background:#342a22}
.map-image-button{border:1px solid rgba(76,61,48,.16)}
.map-image-button span{right:14px;bottom:14px;padding:9px 13px;background:rgba(45,36,29,.82)}
.map-panel-actions{gap:22px;font-size:.78rem;letter-spacing:.04em;color:#5f5146}
.map-panel-actions a{border-color:rgba(95,81,70,.55)}
.button{border-radius:0;padding:14px 22px}

@media(max-width:800px){.hotel-map{padding-top:100px;padding-bottom:100px}.hotel-map-heading{margin-bottom:46px}.hotel-tour-video{margin-bottom:72px;padding:6px}.video-toggle{right:16px;bottom:16px}.map-subheading{padding-top:36px}.map-panel-actions{gap:12px}}

/* Keep the floor plans visible without letting the section feel endless. */
.map-details-visible{max-width:1300px;margin:0 auto}
.map-feature-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:54px;align-items:end;margin:0 0 30px;padding:42px 46px;background:#342a22;color:#fff;box-shadow:0 18px 46px rgba(45,36,29,.12)}
.map-feature-intro .eyebrow{margin:0 0 12px;color:#d9c5ae}
.map-feature-intro h3{margin:0;font-family:"Italiana",serif;font-size:clamp(2.25rem,4vw,4rem);font-weight:400;line-height:1.04}
.map-feature-intro>p{max-width:470px;margin:0;color:#e2d8cd;line-height:1.7}
.map-details-visible .map-tabs,.map-details-visible .map-panel{max-width:none}
.map-details-visible .map-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.map-pan-hint{display:none}
.map-floor-title{margin:30px 0 14px;color:#342a22;font:500 clamp(1.35rem,2.1vw,1.8rem) "DM Sans",sans-serif;letter-spacing:.01em}

@media(prefers-reduced-motion:no-preference){
  @supports(animation-timeline:view()){
    .map-feature-intro{animation:map-feature-reveal both linear;animation-timeline:view();animation-range:entry 5% cover 32%}
  }
}
@keyframes map-feature-reveal{from{opacity:.35;transform:translateY(20px) scale(.985)}to{opacity:1;transform:none}}

@media(max-width:800px){
  .map-feature-intro{grid-template-columns:1fr;gap:18px;margin-bottom:18px;padding:30px 24px}
  .map-feature-intro h3{font-size:clamp(2rem,10vw,3rem)}
  .map-feature-intro>p{font-size:.95rem;line-height:1.6}
  .map-details-visible .map-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .map-details-visible .map-tab:nth-child(2n){border-right:0}
  .map-details-visible .map-tab:nth-child(-n+2){border-bottom:1px solid #c8b8a5}
  .map-details-visible .map-tab{min-width:0;padding:14px 10px;border-bottom:0;border-right:1px solid #c8b8a5;font-size:.85rem;text-align:center}
  .map-details-visible .map-tab:last-child{border-right:0}
  .map-details-visible .map-tab span{font-size:.72rem;letter-spacing:0}
  .map-pan-hint{display:flex;align-items:center;gap:8px;margin:14px 0 10px;color:#5f5146;font-size:.76rem;letter-spacing:.05em}
  .map-floor-title{margin-top:24px;margin-bottom:4px}
  .map-pan-hint:before{content:"↔";font-size:1rem;color:#8d694b}
  .map-image-button{overflow-x:auto;overflow-y:hidden;cursor:grab;touch-action:pan-x pan-y;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#8d694b #e6ddd2}
  .map-image-button:active{cursor:grabbing}
  .map-image-button img{width:1120px;max-width:none;height:auto;aspect-ratio:auto;object-fit:initial}
  .map-image-button span{position:sticky;display:inline-block;left:14px;right:auto;bottom:14px;float:left;margin-top:-52px;padding:9px 13px}
}
