.snorkeling-page{--sn-aqua:#a8e9e7;--sn-night:#103e4c}.snorkeling-page .sn-wrap{width:min(1280px,100% - 112px);margin-inline:auto}.snorkeling-page :is(section[id],nav[id]){scroll-margin-top:calc(var(--site-header-height,120px) + 22px)}.snorkeling-page .sn-section{padding-block:100px}.snorkeling-page .sn-eyebrow{letter-spacing:.06em;margin:0 0 22px;font-size:13px;font-weight:600;line-height:1.6}.snorkeling-page .sn-heading{font:500 clamp(40px, 4.4vw, 66px)/1.08 var(--display);letter-spacing:-.055em;margin:0 0 26px}.snorkeling-page :is(.sn-heading,.sn-hero h1,.sn-final h2) em{font-family:var(--serif);font-size:1.13em;font-weight:500}.snorkeling-page .sn-copy{color:var(--muted);margin-bottom:27px;font-size:18px;line-height:1.85}.snorkeling-page .sn-button{background:var(--brand-red);color:#fff;border:1px solid #0000;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;padding:18px 23px;font-size:16px;font-weight:600;line-height:1.5;transition:background .2s,transform .2s;display:inline-flex}.snorkeling-page .sn-button:hover{background:var(--brand-red-hover);transform:translateY(-3px)}.snorkeling-page .sn-button>span,.snorkeling-page .sn-text-link>span{font-size:24px}.snorkeling-page .sn-text-link{border-bottom:1px solid;justify-content:space-between;align-items:center;gap:20px;padding-block:8px;font-size:16px;font-weight:500;line-height:1.6;transition:color .2s;display:inline-flex}.snorkeling-page .sn-text-link:hover{color:var(--link)}.snorkeling-page .sn-hero{isolation:isolate;background:var(--sn-night);color:#fff;position:relative;overflow:clip}.snorkeling-page .sn-hero-photo,.snorkeling-page .sn-hero-shade{z-index:-2;position:absolute;inset:0}.snorkeling-page .sn-hero-photo img{object-fit:cover;object-position:38% center;width:100%;height:112%}.snorkeling-page .sn-hero-shade{z-index:-1;background:linear-gradient(90deg,#043c4515 10%,#0b3c4855 37%,#092f3adb 68%,#092f3af0),linear-gradient(#0000 65%,#092f3a83)}.snorkeling-page .sn-hero-inner{min-height:690px;padding-block:35px 90px;position:relative}.snorkeling-page .sn-location{color:#e7ffff;align-items:center;gap:10px;margin:0;font-size:14px;line-height:1.6;display:flex}.snorkeling-page .sn-location>span{font-size:21px}.snorkeling-page .sn-hero-copy{width:47%;margin:54px 0 0 auto;position:relative}.snorkeling-page .sn-hero-copy .sn-eyebrow{color:#b8eeeb}.snorkeling-page .sn-hero h1{font:500 clamp(64px, 6.8vw, 104px)/.98 var(--display);letter-spacing:-.055em;margin:0 0 30px}.snorkeling-page .sn-hero h1 em{color:#b9f3ed}.snorkeling-page .sn-hero-copy>p:not(.sn-eyebrow):not(.sn-hero-lead){color:#dbedf0;max-width:470px;margin-bottom:30px;font-size:18px;line-height:1.8}.snorkeling-page .sn-hero-lead{margin:0 0 12px;font-size:23px;line-height:1.5}.snorkeling-page .sn-actions{flex-wrap:wrap;align-items:center;gap:18px 26px;display:flex}.snorkeling-page .sn-hero .sn-text-link:hover{color:#a8e9e7}.snorkeling-page .sn-photo-label{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f566366;border:1px solid #d2fff966;border-radius:4px;align-items:center;gap:20px;padding:21px 25px;font-size:18px;line-height:1.45;display:flex;position:absolute;bottom:86px;left:0}.snorkeling-page .sn-photo-label>span:first-child{color:#c7f9ec;font-size:50px}.snorkeling-page .sn-orbit{z-index:1;color:#9ce5e5;opacity:.65;pointer-events:none;width:114px;position:absolute;top:26px;right:26px}.snorkeling-page .sn-orbit svg{stroke:currentColor;stroke-width:1px;width:100%;display:block}.snorkeling-page .sn-pointer{z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(300px circle at var(--story-pointer-x,30%) var(--story-pointer-y,40%), #84e9e91c, transparent 75%);transition:opacity .4s;position:absolute;inset:0}.snorkeling-page .story-pointer-active .sn-pointer{opacity:1}.snorkeling-page .sn-highlights{background:var(--surface);border:1px solid var(--line);box-shadow:0 14px 35px var(--shadow-color);border-radius:7px;grid-template-columns:.8fr 1fr 1fr 1.25fr;margin-top:-31px;display:grid;position:relative}.snorkeling-page .sn-highlights>:is(div,a){border-right:1px solid var(--line);flex-direction:column;gap:9px;padding:27px 30px;display:flex}.snorkeling-page .sn-highlights>:last-child{background:var(--surface-soft);border:0;border-radius:0 7px 7px 0}.snorkeling-page .sn-highlights strong{font:500 31px/1.1 var(--display);letter-spacing:-.045em}.snorkeling-page .sn-highlights span{color:var(--muted);font-size:13px;line-height:1.5}.snorkeling-page .sn-highlights strong span{color:var(--link);float:right;margin-left:10px;font-size:26px}.snorkeling-page .sn-highlights a:hover strong{color:var(--link)}.snorkeling-page .sn-nav{flex-wrap:wrap;gap:10px;padding-top:33px;display:flex}.snorkeling-page .sn-nav a{background:var(--surface);border:1px solid var(--line);border-radius:5px;flex:1;justify-content:space-between;align-items:center;gap:15px;padding:13px 15px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s;display:flex}.snorkeling-page .sn-nav a:hover{background:var(--surface-raised);border-color:var(--link)}.snorkeling-page .sn-nav a>span{color:var(--link);font-size:19px}.snorkeling-page .sn-experience{grid-template-columns:.78fr 1.22fr;align-items:start;gap:65px;display:grid}.snorkeling-page .sn-experience-intro{padding-top:17px}.snorkeling-page .sn-intro-note{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:15px;margin-top:65px;padding-top:22px;font-size:14px;display:flex}.snorkeling-page .sn-moments{min-width:0}.snorkeling-page .sn-moment{border:1px solid var(--line);background:var(--surface);box-shadow:0 -6px 25px var(--shadow-color);border-radius:8px;grid-template-columns:.8fr 1fr;margin-bottom:25px;display:grid;position:relative;overflow:clip}.snorkeling-page .sn-moment:nth-child(2){background:var(--surface-soft)}.snorkeling-page .sn-moment:last-child{margin-bottom:0}.snorkeling-page .sn-moments.is-stacking .sn-moment{top:calc(var(--sn-stack-top) + var(--sn-card-index) * var(--sn-stack-step));position:sticky}.snorkeling-page .sn-moments.is-stacking:after{content:"";height:var(--sn-stack-tail,160px);display:block}.snorkeling-page .sn-moment-image{min-height:340px;position:relative}.snorkeling-page .sn-moment-image img{object-fit:cover;width:100%;height:100%;position:absolute}.snorkeling-page .sn-moment-image>span{color:#fff;background:#0d384c88;border:1px solid #fff8;border-radius:50%;place-items:center;width:44px;height:44px;font-size:16px;display:grid;position:absolute;bottom:15px;left:16px}.snorkeling-page .sn-moment-copy{align-self:center;padding:30px 27px}.snorkeling-page .sn-moment-copy .sn-eyebrow{color:var(--link);margin-bottom:20px;font-size:12px}.snorkeling-page .sn-moment h3{font:500 27px/1.22 var(--display);letter-spacing:-.04em;margin-bottom:17px}.snorkeling-page .sn-moment-copy>p:last-child{color:var(--muted);margin:0;font-size:16px;line-height:1.8}.snorkeling-page .sn-package-section{background:var(--surface-soft);border-block:1px solid var(--line)}.snorkeling-page .sn-section-heading{grid-template-columns:1.2fr 1fr;align-items:end;gap:70px;margin-bottom:44px;display:grid}.snorkeling-page .sn-section-heading .sn-heading{margin-bottom:0}.snorkeling-page .sn-section-heading>p{margin:0}.snorkeling-page .sn-package-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.snorkeling-page .sn-package-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;padding:30px 26px 24px;display:flex}.snorkeling-page .sn-package-featured{color:#fff;background:var(--sn-night);border-color:var(--sn-night);box-shadow:0 13px 32px var(--shadow-color)}.snorkeling-page .sn-package-top{justify-content:space-between;align-items:center;gap:15px;margin-bottom:33px;font-size:14px;display:flex}.snorkeling-page .sn-package-top>:last-child{color:var(--link);font-size:28px}.snorkeling-page .sn-package-featured .sn-package-top>:last-child{color:#a8e9e7}.snorkeling-page .sn-package-card h3{font:500 67px/1 var(--display);letter-spacing:-.06em;margin:0 0 28px}.snorkeling-page .sn-package-card h3 span{letter-spacing:-.04em;margin-left:5px;font-size:24px}.snorkeling-page .sn-package-card h3 em{font:500 24px/1.3 var(--serif);letter-spacing:0;margin-top:14px;display:block}.snorkeling-page .sn-package-card ul{margin:0 0 27px;padding:0;font-size:15px;line-height:1.6;list-style:none}.snorkeling-page .sn-package-card li{border-bottom:1px solid var(--line);padding:10px 0 10px 22px;position:relative}.snorkeling-page .sn-package-card li:before{content:"✓";color:var(--link);position:absolute;left:0}.snorkeling-page .sn-package-featured li{border-color:#acd8db35}.snorkeling-page .sn-package-featured li:before{color:#a8e9e7}.snorkeling-page .sn-package-price{flex-direction:column;gap:10px;margin-top:auto;margin-bottom:25px;display:flex}.snorkeling-page .sn-package-price>span{color:var(--muted);font-size:13px;line-height:1.5}.snorkeling-page .sn-package-price>strong{font:500 29px/1.3 var(--display);letter-spacing:-.05em}.snorkeling-page .sn-package-featured .sn-package-price>span{color:#c7e3e5}.snorkeling-page .sn-package-featured .sn-package-price>strong{font-size:36px}.snorkeling-page .sn-button-outline{border-color:var(--line);color:var(--ink);background:0 0}.snorkeling-page .sn-button-outline:hover{background:var(--surface-raised)}.snorkeling-page .sn-package-note{color:var(--muted);margin:15px 0 0;font-size:12px;line-height:1.6}.snorkeling-page .sn-package-featured .sn-package-note{color:#c7e3e5}.snorkeling-page .sn-exclusions{max-width:800px;color:var(--muted);margin:27px 0 0;font-size:14px;line-height:1.8}.snorkeling-page .sn-rates{border-top:1px solid var(--line)}.snorkeling-page .sn-resort{border-bottom:1px solid var(--line)}.snorkeling-page .sn-resort summary{cursor:pointer;grid-template-columns:48px 1fr auto 38px;align-items:center;gap:26px;padding:27px 12px;list-style:none;display:grid}.snorkeling-page summary::-webkit-details-marker{display:none}.snorkeling-page .sn-resort-index{color:var(--link);font-size:16px}.snorkeling-page .sn-resort-name strong{font:500 26px/1.4 var(--display);letter-spacing:-.04em;display:block}.snorkeling-page .sn-resort-name>span{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.6;display:block}.snorkeling-page .sn-resort-from{color:var(--muted);font-size:13px}.snorkeling-page .sn-resort-from b{color:var(--ink);white-space:nowrap;margin-top:6px;font-size:24px;font-weight:500;display:block}.snorkeling-page .sn-plus{border:1px solid var(--line);border-radius:50%;place-items:center;width:34px;height:34px;font-size:25px;line-height:1;transition:transform .2s,background .2s;display:grid}.snorkeling-page details[open]>summary .sn-plus{background:var(--surface-raised);transform:rotate(45deg)}.snorkeling-page .sn-room-list{grid-template-columns:1fr 1fr;gap:12px;padding:0 12px 20px 86px;display:grid}.snorkeling-page .sn-room-list a{border:1px solid var(--line);background:var(--surface);border-radius:5px;grid-template-columns:1fr auto 20px;align-items:center;gap:14px;padding:17px 20px;font-size:16px;line-height:1.6;transition:border-color .2s,background .2s;display:grid}.snorkeling-page .sn-room-list a:hover{border-color:var(--link);background:var(--surface-soft)}.snorkeling-page .sn-room-list strong{font-weight:600}.snorkeling-page .sn-room-list small{color:var(--muted);font-size:12px;font-weight:400}.snorkeling-page .sn-room-list a>:last-child{color:var(--link);font-size:23px}.snorkeling-page .sn-resort-about{margin:0 12px 25px 86px;font-size:14px}.snorkeling-page .sn-rate-note{background:var(--surface-soft);border-radius:5px;align-items:center;gap:20px;margin-top:30px;padding:26px 30px;display:flex}.snorkeling-page .sn-rate-note>span{color:var(--link);font-size:40px}.snorkeling-page .sn-rate-note p{color:var(--muted);margin:0;font-size:15px;line-height:1.8}.snorkeling-page .sn-planning{background:var(--sn-night);color:#f2ffff}.snorkeling-page .sn-planning .sn-eyebrow{color:#b4e7e3}.snorkeling-page .sn-planning .sn-section-heading>a{justify-self:end;margin-bottom:7px}.snorkeling-page .sn-planning .sn-text-link:hover{color:#a8e9e7}.snorkeling-page .sn-plan-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;display:grid}.snorkeling-page .sn-plan-grid article{border-top:1px solid #a8e9e74a;padding-top:25px}.snorkeling-page .sn-plan-number{color:#a8e9e7;margin-bottom:30px;font-size:14px;display:block}.snorkeling-page .sn-plan-grid h3{font:500 24px/1.4 var(--display);letter-spacing:-.04em;margin:0 0 15px}.snorkeling-page .sn-plan-grid p{color:#c9e2e6;margin:0;font-size:16px;line-height:1.8}.snorkeling-page .sn-policy-note{border-top:1px solid #a8e9e74a;justify-content:space-between;align-items:center;gap:30px;margin-top:40px;padding-top:27px;display:flex}.snorkeling-page .sn-policy-note p{color:#c9e2e6;max-width:780px;margin:0;font-size:14px;line-height:1.8}.snorkeling-page .sn-policy-note a{flex-shrink:0}.snorkeling-page .sn-faq{grid-template-columns:.8fr 1.2fr;gap:90px;display:grid}.snorkeling-page .sn-faq-list{border-top:1px solid var(--line)}.snorkeling-page .sn-faq-list details{border-bottom:1px solid var(--line)}.snorkeling-page .sn-faq-list summary{cursor:pointer;grid-template-columns:1fr 34px;align-items:center;gap:20px;padding:24px 0;font-size:19px;line-height:1.5;list-style:none;display:grid}.snorkeling-page .sn-faq-list details>p{color:var(--muted);margin-bottom:27px;padding-right:35px;font-size:17px;line-height:1.85}.snorkeling-page .sn-final{background:var(--surface-raised);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:40px;margin-bottom:95px;padding:45px 48px;display:flex}.snorkeling-page .sn-final .sn-eyebrow{margin-bottom:15px}.snorkeling-page .sn-final h2{font:500 clamp(35px, 4vw, 56px)/1.2 var(--display);letter-spacing:-.055em;margin:0}.snorkeling-page .sn-final .sn-button{flex-shrink:0}.locale-zh.snorkeling-page :is(.sn-heading,.sn-hero h1,.sn-final h2) em{font-family:var(--display);font-size:.92em;font-style:normal}.locale-zh.snorkeling-page .sn-hero h1{line-height:1.15}@media (width>=1500px){.snorkeling-page .sn-hero-inner{min-height:760px}.snorkeling-page .sn-hero-copy{margin-top:70px}}@media (width<=1100px){.snorkeling-page .sn-wrap{width:calc(100% - 72px)}.snorkeling-page .sn-hero-copy{width:50%}.snorkeling-page .sn-orbit{width:86px;top:20px;right:13px}.snorkeling-page .sn-highlights>:is(div,a){padding:23px 20px}.snorkeling-page .sn-experience{grid-template-columns:.65fr 1fr;gap:36px}.snorkeling-page .sn-moment{grid-template-columns:1fr}.snorkeling-page .sn-moment-image{min-height:190px}.snorkeling-page .sn-moment-copy{padding:23px}.snorkeling-page .sn-section-heading{gap:40px}.snorkeling-page .sn-package-card{padding:26px 20px}.snorkeling-page .sn-room-list{padding-left:12px}.snorkeling-page .sn-plan-grid{grid-template-columns:1fr 1fr;gap:35px}.snorkeling-page .sn-faq{gap:45px}.snorkeling-page .sn-final{padding:32px}}@media (width<=850px){.snorkeling-page .sn-section{padding-block:70px}.snorkeling-page .sn-hero-inner{min-height:0;padding-block:26px 70px}.snorkeling-page .sn-hero-copy{width:100%;margin-top:310px}.snorkeling-page .sn-hero-copy>p:not(.sn-eyebrow):not(.sn-hero-lead){max-width:600px}.snorkeling-page .sn-hero-photo{height:440px}.snorkeling-page .sn-hero-photo img{object-position:24% center;height:100%}.snorkeling-page .sn-hero-shade{background:linear-gradient(0deg, var(--sn-night) calc(100% - 445px), #103e4c00 calc(100% - 290px)), linear-gradient(180deg, #092f3a66, transparent 100px)}.snorkeling-page .sn-hero h1{max-width:600px;font-size:74px}.snorkeling-page .sn-photo-label{display:none}.snorkeling-page .sn-highlights{grid-template-columns:1fr 1fr}.snorkeling-page .sn-highlights>:is(div,a){border-bottom:1px solid var(--line);padding:23px}.snorkeling-page .sn-highlights>:nth-child(2){border-right:0}.snorkeling-page .sn-highlights>:nth-child(3){border-bottom:0}.snorkeling-page .sn-highlights>:last-child{border-radius:0 0 7px}.snorkeling-page .sn-nav{gap:8px}.snorkeling-page .sn-nav a{flex:calc(33.333% - 8px)}.snorkeling-page :is(.sn-experience,.sn-section-heading,.sn-faq){grid-template-columns:1fr;gap:30px}.snorkeling-page .sn-intro-note{margin-top:30px}.snorkeling-page .sn-moment{grid-template-columns:.8fr 1fr}.snorkeling-page .sn-moment-image{min-height:285px}.snorkeling-page .sn-package-grid{grid-template-columns:1fr}.snorkeling-page .sn-package-featured{order:-1}.snorkeling-page .sn-package-card{padding:30px}.snorkeling-page .sn-package-card ul{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.snorkeling-page .sn-package-top{margin-bottom:25px}.snorkeling-page .sn-package-card h3 em{margin-left:12px;display:inline}.snorkeling-page .sn-room-list{grid-template-columns:1fr}.snorkeling-page .sn-resort summary{grid-template-columns:27px 1fr auto 34px;gap:16px}.snorkeling-page .sn-resort-name strong{font-size:23px}.snorkeling-page .sn-resort-about{margin-left:12px}.snorkeling-page .sn-planning .sn-section-heading>a{justify-self:start}.snorkeling-page .sn-policy-note{flex-direction:column;align-items:flex-start;gap:12px}.snorkeling-page .sn-final{flex-direction:column;align-items:flex-start;gap:25px;margin-bottom:65px}}@media (width<=560px){.snorkeling-page .sn-wrap{width:calc(100% - 38px)}.snorkeling-page .sn-section{padding-block:57px}.snorkeling-page .sn-heading{font-size:42px}.snorkeling-page .sn-copy{font-size:17px}.snorkeling-page .sn-eyebrow{margin-bottom:17px;font-size:12px}.snorkeling-page .sn-hero-inner{padding-top:19px;padding-bottom:61px}.snorkeling-page .sn-location{font-size:12px}.snorkeling-page .sn-orbit{width:79px;top:190px;right:15px}.snorkeling-page .sn-hero-photo{height:355px}.snorkeling-page .sn-hero-photo img{object-position:24% center}.snorkeling-page .sn-hero-shade{background:linear-gradient(0deg, var(--sn-night) calc(100% - 360px), #103e4c00 calc(100% - 200px)), linear-gradient(180deg, #092f3a66, transparent 100px)}.snorkeling-page .sn-hero-copy{margin-top:255px}.snorkeling-page .sn-hero h1{margin-bottom:23px;font-size:clamp(50px,13.7vw,73px)}.snorkeling-page .sn-hero-lead{font-size:22px}.snorkeling-page .sn-hero-copy>p:not(.sn-eyebrow):not(.sn-hero-lead){font-size:17px}.snorkeling-page .sn-actions{gap:18px}.snorkeling-page .sn-actions .sn-button{width:100%}.snorkeling-page .sn-button{padding:16px 19px;font-size:15px}.snorkeling-page .sn-text-link{font-size:15px}.snorkeling-page .sn-highlights>:is(div,a){padding:21px 16px}.snorkeling-page .sn-highlights strong{font-size:25px}.snorkeling-page .sn-highlights span{font-size:12px}.snorkeling-page .sn-highlights strong span{margin-left:5px;font-size:20px}.snorkeling-page .sn-nav{padding-top:26px}.snorkeling-page .sn-nav a{flex-basis:calc(50% - 8px);padding:11px 12px;font-size:13px}.snorkeling-page .sn-moment{grid-template-columns:1fr}.snorkeling-page .sn-moment-image{min-height:190px}.snorkeling-page .sn-moment-copy{padding:23px}.snorkeling-page .sn-moment-copy .sn-eyebrow{margin-bottom:12px}.snorkeling-page .sn-moment h3{font-size:26px}.snorkeling-page .sn-moment-copy>p:last-child{font-size:16px;line-height:1.75}.snorkeling-page .sn-package-card{padding:27px 22px 24px}.snorkeling-page .sn-package-card ul{grid-template-columns:1fr}.snorkeling-page .sn-package-card h3{font-size:61px}.snorkeling-page .sn-package-card h3 em{font-size:22px}.snorkeling-page .sn-resort summary{grid-template-columns:1fr 32px;gap:12px 15px;padding:23px 0}.snorkeling-page .sn-resort-index{display:none}.snorkeling-page .sn-resort-name strong{font-size:23px}.snorkeling-page .sn-resort-from{grid-row:2}.snorkeling-page .sn-resort-from b{margin-left:7px;font-size:21px;display:inline}.snorkeling-page .sn-resort summary>.sn-plus{grid-area:1/2/3}.snorkeling-page .sn-room-list{padding-inline:0}.snorkeling-page .sn-room-list a{gap:10px;padding:15px;font-size:15px}.snorkeling-page .sn-room-list strong small{display:block}.snorkeling-page .sn-resort-about{margin-left:0}.snorkeling-page .sn-rate-note{align-items:flex-start;gap:15px;padding:23px 20px}.snorkeling-page .sn-rate-note>span{font-size:28px}.snorkeling-page .sn-rate-note p{font-size:14px}.snorkeling-page .sn-plan-grid{grid-template-columns:1fr;gap:30px}.snorkeling-page .sn-plan-number{margin-bottom:18px}.snorkeling-page .sn-faq-list summary{padding-block:22px;font-size:18px}.snorkeling-page .sn-faq-list details>p{padding-right:0;font-size:16px}.snorkeling-page .sn-final{padding:30px 23px}.snorkeling-page .sn-final h2{font-size:38px}.snorkeling-page .sn-final .sn-button{width:100%}}@media (prefers-reduced-motion:reduce){.snorkeling-page .sn-moments.is-stacking .sn-moment{position:relative}.snorkeling-page .sn-moments.is-stacking:after,.snorkeling-page .sn-pointer{display:none}}
