.booking-page{overflow-x:hidden;background:#f2f6fa;color:#0a1f43;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.5}.booking-page .site-header{display:none}.booking-page .page-shell{width:100%;max-width:none;margin:0;padding:0}.booking-page .hidden{display:none!important}.resort-booking{min-height:100vh;background:#f2f6fa;color:#0a1f43}.resort-nav{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:270px minmax(560px,1fr) 300px;align-items:center;gap:24px;width:100%;max-width:1920px;height:100px;min-height:100px;margin:0 auto;padding:12px 28px;border-bottom:1px solid #e5eaf0;background:#fffffff5;box-shadow:0 8px 24px #081f3f14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.resort-brand{display:inline-flex;align-items:center;gap:13px;min-width:0}.resort-brand-mark{position:relative;flex:0 0 auto;width:58px;height:58px;overflow:hidden;border:1px solid #dbe7ed;border-radius:16px;background:#fff;box-shadow:0 6px 16px #081f3f1a}.resort-brand-mark:before{content:none}.resort-brand-mark:after{content:none}.resort-brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.resort-brand strong,.resort-brand small{display:block;white-space:nowrap}.resort-brand strong{color:#071c45;font-size:1.7rem;font-weight:900;line-height:1;text-transform:uppercase}.resort-brand small{margin-top:5px;color:#50627d;font-size:.68rem;font-weight:800;text-transform:uppercase}.resort-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;width:min(570px,100%);margin:0 auto;padding:0;list-style:none}.resort-steps li{position:relative;display:grid;justify-items:center;gap:7px;color:#56667c;font-size:.76rem;font-weight:700;text-align:center}.resort-steps li:not(:last-child):after{content:"";position:absolute;top:18px;left:calc(50% + 25px);right:calc(-50% + 25px);height:2px;background:#dce4ec}.resort-steps span{position:relative;z-index:1;display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:#edf1f5;color:#25354e;font-size:.78rem;font-weight:800}.resort-steps .is-active,.resort-steps .is-complete{color:#0b6f72}.resort-steps .is-active span,.resort-steps .is-complete span{background:#0b6f72;color:#fff;box-shadow:0 9px 22px #0b6f7242}.resort-steps .is-active:after,.resort-steps .is-complete:after{background:#0b6f72!important}.resort-help{display:grid;grid-template-columns:44px minmax(120px,1fr) auto;align-items:center;justify-self:end;gap:10px}.help-phone-icon{display:grid;width:44px;height:44px;place-items:center;border:1px solid #d9e9ff;border-radius:50%;background:#edf6ff;color:#0b6f72;font-size:0;box-shadow:inset 0 0 0 4px #0b6f720d}.help-phone-icon:before{content:"";width:21px;height:21px;background:#0b6f72;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.24.2 2.45.57 3.57a1 1 0 0 1-.24 1.02l-2.21 2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.24.2 2.45.57 3.57a1 1 0 0 1-.24 1.02l-2.21 2.2Z'/%3E%3C/svg%3E") center / contain no-repeat}.resort-help small,.resort-help strong{display:block}.resort-help small{color:#52627a;font-size:.72rem;font-weight:700}.resort-help strong{color:#071c45;font-size:.84rem;font-weight:850;white-space:nowrap}.language-switcher{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid #d8e1eb;border-radius:8px;background:#f9fbfd;color:#14284b;padding:7px 10px;cursor:pointer;font-size:.76rem;font-weight:750}.resort-grid{--booking-grid-height: 760px;--booking-zone-top: 28%;--booking-zone-bottom: 18%;--booking-zone-height: 410px;display:grid;grid-template-columns:254px minmax(0,1fr) 298px;grid-template-rows:minmax(0,1fr);gap:14px;width:100%;max-width:1920px;height:max(var(--booking-grid-height),calc(100vh - 100px));min-height:max(var(--booking-grid-height),calc(100vh - 100px));margin:0 auto;padding:14px 16px 16px;overflow:hidden}.resort-grid.has-extra-sunbed-rows{--booking-grid-height: 820px;--booking-zone-top: 24%;--booking-zone-bottom: 12%;--booking-zone-height: 500px}.resort-grid.has-many-sunbed-rows{--booking-grid-height: 880px;--booking-zone-bottom: 11%;--booking-zone-height: 560px}.resort-grid.has-ultra-sunbed-rows{--booking-grid-height: 960px;--booking-zone-top: 22%;--booking-zone-bottom: 9%;--booking-zone-height: 650px}.native-date-input,#selected-sunbed-inputs{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.resort-left-panel,.resort-checkout{position:static;top:auto;display:grid;align-content:start;gap:12px;height:100%;max-height:none;min-height:0;overflow-y:auto;scrollbar-width:none}.resort-left-panel::-webkit-scrollbar,.resort-checkout::-webkit-scrollbar{display:none}.resort-left-panel{grid-column:1;grid-row:1}.resort-map-hero{grid-column:2;grid-row:1}.resort-grid:not(.has-selection) .resort-map-hero{grid-column:2 / 4}.resort-checkout{grid-column:3;grid-row:1}.resort-checkout[hidden]{display:none}.resort-grid.has-selection .resort-checkout{animation:checkoutPanelIn .22s ease both}.glass-card,.checkout-card{border:1px solid #e7ebf0;border-radius:10px;background:#fffffff5;box-shadow:0 8px 24px #081f3f14;-webkit-backdrop-filter:none;backdrop-filter:none}.glass-card,.checkout-card{padding:15px}.card-heading,.selection-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-heading,.compact-heading{margin-bottom:11px}.resort-booking .eyebrow{margin:0 0 5px;color:#697891;font-size:.61rem;font-weight:850;text-transform:uppercase}.resort-left-panel .eyebrow,.selection-title .eyebrow{display:none}.card-heading h2,.selection-title h2,.tool-title,.payment-options legend{margin:0;color:#071c45;font-size:.92rem;font-weight:850;text-transform:none}.icon-button{display:grid;width:34px;height:34px;place-items:center;border:1px solid #dbe5f0;border-radius:8px;background:#fff;cursor:pointer}.icon-button span{position:relative;width:16px;height:16px;border:2px solid #0b2a5a;border-radius:4px}.icon-button span:before{content:"";position:absolute;inset:3px -2px auto;height:2px;background:#0b2a5a}.calendar-card{padding-bottom:16px}.calendar-shell{display:grid;gap:10px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-toolbar button{display:grid;width:28px;height:28px;place-items:center;border:0;border-radius:50%;background:transparent;color:#14284a;cursor:pointer;font-size:1.35rem;line-height:1}.calendar-toolbar button:hover,.calendar-toolbar button:focus-visible{background:#eef5ff}.calendar-toolbar strong{color:#0b2045;font-size:.82rem;font-weight:850}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays span{color:#718099;font-size:.65rem;font-weight:750;text-align:center}.calendar-days button,.calendar-spacer{display:grid;aspect-ratio:1;min-width:0;place-items:center;border:0;border-radius:8px;background:transparent;color:#0b2045;cursor:pointer;font-size:.73rem;font-weight:800}.calendar-days button:hover,.calendar-days button:focus-visible{background:#edf5ff}.calendar-days button.is-selected{background:#0b6f72;color:#fff;box-shadow:0 8px 16px #0b6f723d}.calendar-days button:disabled{color:#a9b3c1;cursor:not-allowed}.selected-date-pill{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:10px;margin-top:13px;border-radius:9px;background:#edf5ff;padding:10px}.selected-date-pill>span{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:#0b6f72}.selected-date-pill>span:before{content:"";width:14px;height:14px;border:2px solid #fff;border-radius:4px;box-shadow:inset 0 4px 0 -2px #fff}.selected-date-pill small,.selected-date-pill strong{display:block}.selected-date-pill small{color:#63748d;font-size:.65rem;font-weight:700}.selected-date-pill strong{margin-top:2px;color:#0b2045;font-size:.74rem;font-weight:850}.resort-booking .zone-filter-group{display:grid;gap:7px}.resort-booking .zone-filter{display:grid;grid-template-columns:13px 1fr auto;align-items:center;gap:9px;width:100%;min-height:38px;border:1px solid #e2e8f0;border-radius:8px;background:#f7f9fc;color:#102749;padding:8px 10px;cursor:pointer;font-size:.74rem;font-weight:750;text-align:left;transition:transform .15s ease,border-color .15s ease,background .15s ease}.resort-booking .zone-filter:hover,.resort-booking .zone-filter:focus-visible{transform:translateY(-1px);border-color:#bcd5f5;background:#fff}.resort-booking .zone-filter.is-active{border-color:#0b6f72;background:#0b6f72;color:#fff;box-shadow:0 9px 18px #0b6f7238}.resort-booking .zone-filter strong{font-size:.7rem}.zone-filter[data-zone-filter=A] span:after{content:" (Premium)";color:#75839a;font-weight:500}.zone-filter[data-zone-filter=B] span:after{content:" (Main)";color:#75839a;font-weight:500}.zone-filter[data-zone-filter=C] span:after{content:" (Relax)";color:#75839a;font-weight:500}.zone-filter.is-active span:after{color:#ffffffc7!important}.filter-swatch{width:12px;height:12px;border-radius:50%;background:#0b6f72}.filter-swatch.zone-a{background:#0b6f72}.filter-swatch.zone-b{background:#18ad4f}.filter-swatch.zone-c{background:#ff7614}.resort-legend{display:grid;grid-template-columns:1fr;gap:8px}.resort-legend span{display:flex;align-items:center;gap:9px;color:#12294d;font-size:.73rem;font-weight:700}.resort-booking .legend-dot{flex:0 0 auto;width:12px;height:12px;border-radius:4px}.legend-dot.available{background:#25ba55}.legend-dot.selected{background:#0b6f72}.legend-dot.reserved{background:#ff3549}.legend-dot.blocked{background:#808b9b}.legend-dot.unavailable{background:#d2d8e0}.how-card{display:none;width:100%;border:0;color:inherit;text-align:left;cursor:pointer}.resort-map-hero{position:relative;height:100%;min-height:0;overflow:hidden;border:0;border-radius:8px;background:#2d773c;padding:0;box-shadow:0 16px 38px #081f3f24}.beach-photo{position:absolute;top:-90%;left:0;z-index:0;width:100%;height:190%;max-width:none;object-fit:cover;object-position:center;filter:saturate(1.24) contrast(1.03) brightness(1.03);transform:rotate(180deg)}.resort-map-hero:before{content:"";position:absolute;inset:0 0 auto;z-index:1;height:23%;pointer-events:none;background:linear-gradient(180deg,rgb(0 170 203 / 24%),rgb(44 198 215 / 12%) 72%,transparent)}.resort-map-hero:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent 0 23%,rgb(247 221 171 / 12%) 27%,rgb(247 221 171 / 72%) 40%,rgb(245 216 159 / 78%) 78%,transparent 96%)}.ocean-band,.shore-foam,.palm{display:none}.walkway{position:absolute;top:23%;bottom:12%;z-index:3;width:34px;height:auto;border-radius:8px;background:repeating-linear-gradient(0deg,#7147237a 0 5px,#f3cf9170 5px 12px),#b9854d;box-shadow:inset 0 0 0 1px #492a1029;opacity:.82;pointer-events:none;transform:translate(-50%)}.walkway-one{left:34%}.walkway-two{left:66%}.beach-prop{position:absolute;top:20.5%;z-index:3;width:42px;height:32px;pointer-events:none;filter:drop-shadow(0 5px 5px rgb(71 45 22 / 22%))}.beach-prop:before{content:"";position:absolute;top:0;left:9px;width:24px;height:13px;border-radius:24px 24px 3px 3px;background:repeating-linear-gradient(90deg,#9c7447 0 5px,#dfbc82 5px 10px);box-shadow:0 11px 0 -5px #77512e}.beach-prop:after{content:"";position:absolute;right:1px;bottom:1px;width:25px;height:8px;border:2px solid #8a5e34;border-radius:2px;background:#d6b078;transform:rotate(-10deg)}.beach-prop-one{left:20%}.beach-prop-two{left:49%;transform:scaleX(-1)}.beach-prop-three{left:79%}.map-title-row{position:absolute;top:25px;right:18px;z-index:5;display:block;min-height:0;margin:0}.map-heading-copy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.map-status-strip{display:none;align-items:center;gap:8px;border:0;border-radius:999px;background:#ffffffe5;padding:7px 9px;box-shadow:0 10px 24px #081f3f21;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-status-strip span,.map-status-strip strong{display:inline-flex;align-items:center;min-height:27px;border-radius:999px;padding:0 10px;font-size:.7rem;font-weight:850}.map-status-strip span{background:#edf5ff;color:#0b6f72}.map-status-strip strong{background:#edf9f0;color:#15833d}.map-quick-controls{position:absolute;top:16px;right:14px;z-index:6;display:grid;overflow:hidden;border:1px solid rgb(8 31 63 / 10%);border-radius:10px;background:#ffffffeb;box-shadow:0 12px 28px #081f3f26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-quick-controls button{display:grid;width:42px;height:38px;min-height:0;place-items:center;border:0;border-bottom:1px solid #e5eaf0;background:transparent;color:#071c45;cursor:pointer;font-size:.7rem;font-weight:850}.map-quick-controls button:first-child,.map-quick-controls button:nth-child(2){font-size:1.1rem}.map-quick-controls button:last-child{border-bottom:0}.map-quick-controls button:hover,.map-quick-controls button:focus-visible{background:#edf5ff}.beach-zone-stack{position:absolute;top:var(--booking-zone-top);right:26px;bottom:auto;left:26px;z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;height:min(calc(100% - var(--booking-zone-top) - var(--booking-zone-bottom)),var(--booking-zone-height));margin:0;transform:scale(var(--map-scale, 1));transform-origin:center;transition:transform .18s ease}.booking-page .beach-zone{position:relative;display:flex;min-width:0;min-height:0;flex-direction:column;border:2px dashed;border-radius:18px;background:repeating-linear-gradient(12deg,rgb(255 255 255 / 7%) 0 1px,transparent 1px 14px),#fff6dc94;padding:19px 12px 13px;box-shadow:0 12px 26px #4c32151a,inset 0 0 0 1px #ffffff85;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.booking-page .beach-zone:nth-child(2){width:calc(100% - 18px);justify-self:center}.booking-page .zone-a{border-color:#0b6f72}.booking-page .zone-b{border-color:#18ad4f}.booking-page .zone-c{border-color:#ff7614}.booking-page .beach-zone .zone-heading{position:absolute;top:0;left:50%;z-index:2;display:block;margin:0;transform:translate(-50%,-50%)}.booking-page .beach-zone .zone-heading h3,.booking-page .beach-zone .zone-badge{display:none}.booking-page .beach-zone .zone-heading .eyebrow{display:inline-flex;margin:0;border-radius:10px;padding:8px 17px;color:#fff;font-size:.76rem;font-weight:850;white-space:nowrap;box-shadow:0 9px 20px #081f3f2e}.booking-page .zone-a .zone-heading .eyebrow{background:#0b6f72}.booking-page .zone-b .zone-heading .eyebrow{background:#18ad4f}.booking-page .zone-c .zone-heading .eyebrow{background:#ff7614}.booking-page .beach-zone .sunbed-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));grid-auto-rows:1fr;align-items:center;gap:8px;width:100%;height:100%;margin:0}.booking-page .sunbed-button{position:relative;display:grid;width:100%;min-width:0;min-height:86px;max-height:96px;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--status-ink);cursor:pointer;isolation:isolate;transition:transform .16s ease,filter .16s ease,opacity .16s ease}.booking-page .sunbed-button:before{content:"";position:absolute;left:50%;bottom:1px;z-index:0;width:min(72px,86%);height:42px;border:2px solid var(--status-border);border-radius:10px;background:var(--status-bg);box-shadow:none;transform:translate(-50%);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.booking-page .sunbed-button:after{content:"";position:absolute;top:31px;left:50%;z-index:1;width:5px;height:22px;border:1px solid var(--status-border);border-top:0;border-radius:0 0 5px 5px;background:#fefefe;transform:translate(-50%)}.booking-page .sunbed-button:not(:disabled):hover,.booking-page .sunbed-button:not(:disabled):focus-visible{transform:translateY(-3px)}.booking-page .sunbed-button:not(:disabled):hover:before,.booking-page .sunbed-button:not(:disabled):focus-visible:before{box-shadow:0 0 0 3px var(--status-glow)}.booking-page .sunbed-button.is-selected{animation:bookingBedPulse .65s ease}.booking-page .sunbed-button.is-selected:before{border-width:2px;border-color:#07585b;box-shadow:0 0 0 4px #0b6f722e}.booking-page .sunbed-button:disabled{cursor:not-allowed;opacity:.9}.booking-page .sunbed-icon{position:absolute;top:5px;left:50%;z-index:1;width:min(82px,94%);height:30px;color:var(--status-border);transform:translate(-50%)}.booking-page .sunbed-icon:before{content:"";position:absolute;inset:0 auto auto 50%;width:min(80px,100%);height:28px;border:2px solid var(--status-border);border-radius:80px 80px 5px 5px/52px 52px 5px 5px;background:#fefefe;box-shadow:none;opacity:1;transform:translate(-50%)}.booking-page .sunbed-icon:after{content:"";position:absolute;inset:1px auto auto 50%;width:min(32px,42%);height:27px;border:0;border-right:2px solid var(--status-rib);border-left:2px solid var(--status-rib);border-radius:50% 50% 4px 4px/100% 100% 4px 4px;background:transparent;box-shadow:none;opacity:1;transform:translate(-50%)}.booking-page .sunbed-button strong{position:absolute;left:50%;bottom:16px;z-index:2;color:var(--status-ink);font-size:.8rem;font-weight:950;line-height:1;transform:translate(-50%)}.booking-page .sunbed-button strong:before,.booking-page .sunbed-button strong:after{content:"";position:absolute;top:50%;width:4px;height:21px;border-radius:999px;background:var(--status-rib);opacity:.95;transform:translateY(-50%)}.booking-page .sunbed-button strong:before{left:-10px}.booking-page .sunbed-button strong:after{right:-10px}.booking-page .sunbed-button small,.booking-page .sunbed-button em{display:none}.booking-page .resort-grid.has-extra-sunbed-rows .beach-zone{align-self:start;height:max-content}.booking-page .resort-grid.has-extra-sunbed-rows .beach-zone:not(.is-compact-layout) .sunbed-grid{grid-auto-rows:minmax(86px,96px);height:auto;align-content:start}.booking-page .beach-zone.is-compact-layout{align-self:start;height:max-content;padding:17px 10px 11px}.booking-page .beach-zone.is-compact-layout .sunbed-grid{grid-auto-rows:minmax(78px,88px);height:auto;align-content:center;gap:6px}.booking-page .beach-zone.is-compact-layout .sunbed-button{min-height:78px;max-height:88px}.booking-page .beach-zone.is-compact-layout .sunbed-button:before{width:min(68px,84%);height:38px}.booking-page .beach-zone.is-compact-layout .sunbed-button:after{top:28px;height:19px}.booking-page .beach-zone.is-compact-layout .sunbed-icon{top:3px;width:min(72px,92%);height:24px}.booking-page .beach-zone.is-compact-layout .sunbed-icon:before{width:min(70px,100%);height:23px}.booking-page .beach-zone.is-compact-layout .sunbed-icon:after{height:22px}.booking-page .beach-zone.is-compact-layout .sunbed-button strong{bottom:14px;font-size:.76rem}.booking-page .beach-zone.is-compact-layout .sunbed-button strong:before,.booking-page .beach-zone.is-compact-layout .sunbed-button strong:after{height:17px}.booking-page .beach-zone.is-dense-layout{align-self:start;height:max-content;padding:16px 8px 10px}.booking-page .beach-zone.is-dense-layout .sunbed-grid{grid-auto-rows:minmax(68px,78px);height:auto;align-content:center;gap:5px}.booking-page .beach-zone.is-dense-layout .sunbed-button{min-height:68px;max-height:78px}.booking-page .beach-zone.is-dense-layout .sunbed-button:before{width:min(62px,84%);height:34px}.booking-page .beach-zone.is-dense-layout .sunbed-button:after{top:25px;height:17px}.booking-page .beach-zone.is-dense-layout .sunbed-icon{top:3px;width:min(68px,92%);height:23px}.booking-page .beach-zone.is-dense-layout .sunbed-icon:before{width:min(66px,100%);height:22px}.booking-page .beach-zone.is-dense-layout .sunbed-icon:after{width:min(28px,42%);height:21px}.booking-page .beach-zone.is-dense-layout .sunbed-button strong{bottom:12px;font-size:.72rem}.booking-page .beach-zone.is-dense-layout .sunbed-button strong:before,.booking-page .beach-zone.is-dense-layout .sunbed-button strong:after{height:16px}.booking-page .beach-zone.is-ultra-dense-layout .sunbed-button{min-height:58px;max-height:68px}.booking-page .beach-zone.is-ultra-dense-layout .sunbed-grid{grid-auto-rows:minmax(58px,68px);height:auto;align-content:center;gap:6px}.booking-page .beach-zone.is-ultra-dense-layout .sunbed-button:before{height:29px}.booking-page .beach-zone.is-ultra-dense-layout .sunbed-button:after{top:22px;height:14px}.booking-page .status-available{--status-bg: #d8f7df;--status-umbrella-bg: rgb(246 255 248 / 72%);--status-border: #078538;--status-rib: #939aa0;--status-ink: #063c1b;--status-glow: rgb(7 133 56 / 16%)}.booking-page .status-selected,.booking-page .sunbed-button.is-selected{--status-bg: #cfe5ff;--status-umbrella-bg: rgb(246 250 255 / 74%);--status-border: #07585b;--status-rib: #6095e8;--status-ink: #05396f;--status-glow: rgb(11 111 114 / 18%)}.booking-page .status-reserved{--status-bg: #ffd7d8;--status-umbrella-bg: rgb(255 247 247 / 74%);--status-border: #e1192f;--status-rib: #f24a58;--status-ink: #7f0d19;--status-glow: rgb(225 25 47 / 16%)}.booking-page .status-blocked{--status-bg: #dfe3e8;--status-umbrella-bg: rgb(251 252 253 / 74%);--status-border: #626b76;--status-rib: #7e8791;--status-ink: #23313d;--status-glow: rgb(98 107 118 / 16%)}.booking-page .status-unavailable{--status-bg: #f0f2f4;--status-umbrella-bg: rgb(255 255 255 / 72%);--status-border: #b7bec6;--status-rib: #c5ccd3;--status-ink: #8b949d;--status-glow: rgb(183 190 198 / 16%)}@keyframes bookingBedPulse{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes checkoutPanelIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.map-help-pill{position:absolute;bottom:22px;left:50%;z-index:6;display:inline-flex;align-items:center;gap:7px;border:1px solid rgb(8 31 63 / 10%);border-radius:999px;background:#ffffffeb;color:#0b2045;padding:8px 13px;cursor:pointer;font-size:.74rem;font-weight:800;box-shadow:0 10px 25px #081f3f21;transform:translate(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-help-pill span{display:grid;width:18px;height:18px;place-items:center;border-radius:50%;background:#0b6f72;color:#fff;font-size:.5rem}.booking-video-lightbox{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:24px}.booking-video-lightbox[hidden]{display:none!important}.booking-video-backdrop{position:absolute;inset:0;border:0;background:#000000c2;cursor:pointer}.booking-video-dialog{position:relative;z-index:1;width:min(980px,100%);overflow:hidden;border-radius:8px;background:#071c45;box-shadow:0 28px 90px #0000006b}.booking-video-head{display:flex;align-items:center;min-height:68px;padding:12px 64px 12px 18px;background:#fff}.booking-video-head .eyebrow{margin-bottom:2px;color:#0b6f72;font-size:.68rem}.booking-video-head h2{margin:0;color:#071c45;font-size:1.1rem;font-weight:900}.booking-video-close{position:absolute;top:14px;right:14px;z-index:2;display:grid;width:36px;height:36px;place-items:center;border:1px solid #d7e1ec;border-radius:50%;background:#fff;color:#071c45;cursor:pointer;font-size:0;box-shadow:0 8px 22px #081f3f1f;transition:background .16s ease,border-color .16s ease,transform .16s ease}.booking-video-close:before,.booking-video-close:after{content:"";position:absolute;width:14px;height:2px;border-radius:999px;background:currentColor}.booking-video-close:before{transform:rotate(45deg)}.booking-video-close:after{transform:rotate(-45deg)}.booking-video-close:hover,.booking-video-close:focus-visible{border-color:#b9c8d8;background:#f5f8fb;transform:translateY(-1px)}.booking-video-dialog video{display:block;width:100%;max-height:min(72vh,720px);background:#000}body.booking-video-open{overflow:hidden}.resort-booking .notice.warning{position:absolute;top:78px;left:50%;z-index:8;width:min(420px,calc(100% - 120px));margin:0;border-color:#e9bd63;background:#fff8e1f0;transform:translate(-50%)}.resort-booking .loading-row{grid-column:1 / -1;align-self:center;border:1px solid rgb(255 255 255 / 70%);border-radius:10px;background:#ffffffd6;color:#60718a;padding:20px;text-align:center}.resort-checkout{z-index:8}.selection-title{align-items:center;border-bottom:1px solid #e5eaf0;padding-bottom:10px}.selection-title #selected-count{display:grid;min-width:30px;height:30px;place-items:center;border-radius:50%;background:#0b6f72;color:#fff;font-size:.72rem;font-weight:900}.empty-selection{display:grid;justify-items:center;gap:4px;padding:9px 4px 5px;color:#6c7a8f;text-align:center}.empty-selection p{margin:0;font-size:.72rem;line-height:1.35}.empty-chair{display:none}.empty-chair:before{content:"";position:absolute;top:22px;left:12px;width:42px;height:18px;border:4px solid #7e8a9a;border-top:0;border-radius:0 0 7px 7px;transform:skew(24deg)}.empty-chair:after{content:"";position:absolute;top:0;left:17px;width:31px;height:18px;border:3px solid #7e8a9a;border-bottom:0;border-radius:32px 32px 0 0}.checkout-card .summary-list{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.checkout-card .summary-list .muted-line{color:#6b788b;font-size:.7rem}.selected-bed-item{display:grid!important;grid-template-columns:36px 1fr auto 24px;align-items:center;gap:8px;border-bottom:1px solid #edf0f4;padding-bottom:8px}.selected-bed-icon{position:relative;display:grid;width:36px;height:32px;place-items:center;border-radius:8px;background:#edf5ff}.selected-bed-icon:before{content:"";width:25px;height:12px;border:2px solid #0b6f72;border-bottom:0;border-radius:24px 24px 0 0}.selected-bed-copy{display:grid;gap:1px}.selected-bed-copy span,.selected-bed-item strong{color:#071c45;font-size:.76rem;font-weight:850}.selected-bed-copy small{color:#64748b;font-size:.66rem}.selected-bed-item button{border:0;background:transparent;color:#ff3549;cursor:pointer;font-size:0}.selected-bed-item button:before{content:"x";display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#fff0f2;font-size:.7rem;font-weight:900}.checkout-card .summary-total{display:flex;align-items:center;justify-content:space-between;margin-top:10px;border-top:1px solid #e5eaf0;padding-top:10px;color:#102749;font-size:.82rem}.checkout-card .summary-total strong{color:#071c45;font-size:1.3rem;font-weight:900}.tool-title{margin-bottom:8px;text-transform:none}.resort-form{display:grid;gap:7px}.resort-form label,.payment-options legend{color:#102749;font-size:.7rem;font-weight:800}.resort-form label{display:block}.resort-form em{color:#ff3549;font-style:normal}.resort-form input,.resort-form textarea{width:100%;border:1px solid #d9e3ee;border-radius:8px;background:#fff;color:#102749;padding:8px 10px;font-size:.72rem;font-weight:500;margin-top:5px;transition:border-color .14s ease,box-shadow .14s ease}.resort-form input{min-height:34px}.resort-form textarea{min-height:50px;resize:vertical}.resort-form input:focus,.resort-form textarea:focus{border-color:#0b6f72;outline:none;box-shadow:0 0 0 3px #0b6f721a}.payment-options{display:grid;gap:7px;margin:0;padding:0;border:0}.payment-options label{position:relative;display:grid;grid-template-columns:16px 1fr;align-items:center;gap:9px;min-height:48px;border:1px solid #d9e3ee;border-radius:8px;background:#fff;padding:7px 48px 7px 10px;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.payment-options label:hover{transform:translateY(-1px)}.payment-options label:has(input:checked){border-color:#0b6f72;box-shadow:0 0 0 2px #0b6f7214}.payment-options label.payment-online:after{content:"VISA";position:absolute;right:10px;top:50%;color:#183f9e;font-size:.65rem;font-weight:950;transform:translateY(-50%)}.payment-options label.payment-restaurant:after{content:"$";position:absolute;right:12px;top:50%;display:grid;width:22px;height:17px;place-items:center;border:1px solid #278344;border-radius:3px;color:#1e743a;font-size:.65rem;font-weight:900;transform:translateY(-50%)}.payment-options input{width:16px;height:16px;accent-color:#0b6f72}.payment-options strong,.payment-options small{display:block}.payment-options strong{color:#071c45;font-size:.72rem;font-weight:850}.payment-options small{margin-top:2px;color:#63738a;font-size:.64rem;line-height:1.3}.booking-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border:0;border-radius:8px;background:#0b6f72;color:#fff;cursor:pointer;font-size:.82rem;font-weight:850;box-shadow:0 12px 24px #0b6f7238;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.booking-submit:hover,.booking-submit:focus-visible{background:#07585b;box-shadow:0 15px 28px #0b6f7247;transform:translateY(-2px)}.secure-note{margin:-2px 0 0;color:#6a788d;font-size:.65rem;text-align:center}@media(max-width:1280px){.resort-nav{grid-template-columns:230px minmax(480px,1fr) 250px;gap:14px;padding-inline:20px}.resort-brand strong{font-size:1.35rem}.language-switcher{display:none}.resort-help{grid-template-columns:40px 1fr}.resort-grid{grid-template-columns:230px minmax(0,1fr) 280px;padding-inline:12px}.beach-zone-stack{right:18px;left:18px;gap:20px}.booking-page .beach-zone{padding-inline:8px}}@media(max-width:1080px){.booking-page{overflow-x:hidden}.resort-nav{position:static;grid-template-columns:1fr;height:auto;min-height:0;gap:15px;padding:14px 18px}.resort-brand,.resort-help{justify-self:center}.resort-steps{width:min(620px,100%)}.resort-grid{grid-template-columns:240px minmax(0,1fr);grid-template-rows:var(--booking-grid-height) auto;height:auto;min-height:0;overflow:visible}.resort-left-panel{grid-column:1;grid-row:1}.resort-map-hero{grid-column:2;grid-row:1}.resort-grid:not(.has-selection) .resort-map-hero{grid-column:2}.resort-checkout{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;overflow:visible}.booking-submit,.secure-note{grid-column:1 / -1}}@media(max-width:760px){.walkway,.beach-prop{display:none}.resort-brand-mark{width:50px;height:50px}.resort-help{display:none}.resort-steps{gap:8px}.resort-steps li{font-size:.66rem}.resort-steps li:not(:last-child):after{left:calc(50% + 22px);right:calc(-50% + 22px)}.resort-grid{--booking-grid-height: 720px;--booking-zone-top: 26%;--booking-zone-bottom: 16%;--booking-zone-height: 410px;grid-template-columns:1fr;grid-template-rows:auto var(--booking-grid-height) auto;padding:10px}.resort-grid.has-extra-sunbed-rows{--booking-grid-height: 800px;--booking-zone-top: 22%;--booking-zone-bottom: 12%;--booking-zone-height: 500px}.resort-grid.has-many-sunbed-rows{--booking-grid-height: 860px;--booking-zone-height: 560px}.resort-grid.has-ultra-sunbed-rows{--booking-grid-height: 930px;--booking-zone-top: 20%;--booking-zone-bottom: 9%;--booking-zone-height: 650px}.resort-left-panel,.resort-map-hero,.resort-checkout{grid-column:1;height:auto}.resort-left-panel{grid-row:1;grid-template-columns:1fr 1fr;overflow:visible}.calendar-card,.legend-card{grid-row:span 2}.resort-map-hero{grid-row:2;height:var(--booking-grid-height)}.resort-grid:not(.has-selection) .resort-map-hero{grid-column:1}.resort-checkout{grid-row:3;grid-template-columns:1fr}.booking-submit,.secure-note{grid-column:auto}.beach-zone-stack{right:12px;left:12px;grid-template-columns:repeat(3,minmax(215px,1fr));gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.booking-page .beach-zone{scroll-snap-align:start}}@media(max-width:520px){.resort-nav{padding:12px}.resort-brand strong{font-size:1.2rem}.resort-steps li strong{display:none}.resort-left-panel{grid-template-columns:1fr}.calendar-card,.legend-card{grid-row:auto}.resort-grid{--booking-grid-height: 680px}.resort-grid.has-extra-sunbed-rows{--booking-grid-height: 760px}.resort-grid.has-many-sunbed-rows{--booking-grid-height: 820px}.resort-grid.has-ultra-sunbed-rows{--booking-grid-height: 880px}.resort-map-hero{height:var(--booking-grid-height)}.map-title-row{top:14px;right:10px}.map-quick-controls{top:60px;right:10px}}
