:root {
  --ink: #102c34;
  --deep: #082f3a;
  --deep-2: #0b4650;
  --teal: #73d8d0;
  --teal-dark: #1a8f91;
  --coral: #ef7f62;
  --sun: #f6c66d;
  --sand: #f6f0e7;
  --paper: #fffdf8;
  --muted: #6f7f80;
  --line: rgba(16, 44, 52, .14);
  --photo-fallback: linear-gradient(145deg, #1a8f91 0%, var(--deep-2) 48%, var(--deep) 100%);
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'DM Sans', Arial, sans-serif;
  --ease: cubic-bezier(.2, .75, .2, 1);
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--sand); color: var(--ink); font-family: var(--sans); }
body::selection { background: var(--teal); color: var(--deep); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; background-color: var(--deep); background-image: var(--photo-fallback); color: rgba(255,255,255,.78); }
img:not([src]), img[src=""], img[src="#"] { background-image: var(--photo-fallback); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.noise { position: fixed; z-index: 100; inset: 0; pointer-events: none; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

.site-header { position: fixed; z-index: 50; top: 0; left: 0; width: 100%; height: 84px; display: flex; align-items: center; gap: 30px; padding: 0 clamp(24px, 6vw, 96px); color: var(--deep); transition: background .45s ease, color .45s ease, box-shadow .45s ease, height .45s var(--ease), backdrop-filter .45s ease; }
.site-header--hero { color: #fff; }
.site-header.is-scrolled { height: 70px; background: rgba(255, 253, 248, .88); color: var(--deep); box-shadow: 0 1px 0 rgba(8, 47, 58, .12); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; gap: 8px; border: 0; padding: 0; background: transparent; color: inherit; font-size: 12px; font-weight: 700; letter-spacing: .18em; line-height: 1; white-space: nowrap; }
.brand b { color: var(--coral); font-weight: 700; }
.brand-mark { display: inline-grid; place-items: center; width: 24px; height: 24px; color: var(--sun); font-size: 21px; letter-spacing: 0; }
.site-nav { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.nav-list { display: flex; align-items: center; gap: clamp(10px, 1.15vw, 18px); }
.nav-list button, .footer-links button { border: 0; border-bottom: 1px solid transparent; padding: 7px 0; background: transparent; color: inherit; font-size: 10px; font-weight: 600; letter-spacing: .04em; transition: color .25s ease, border-color .25s ease, transform .25s var(--ease); }
.nav-list button:hover, .nav-list button.is-active, .footer-links button:hover { border-color: currentColor; color: var(--coral); transform: translateY(-2px); }
.nav-list button.nav-build { margin-left: 3px; padding-left: 13px; border-left: 1px solid currentColor; }
.nav-action { display: flex; align-items: center; gap: 11px; }
.btn { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--teal); padding: 13px 20px; background: var(--teal); color: var(--deep); font-size: 11px; font-weight: 700; letter-spacing: .015em; text-align: center; transition: background .3s ease, border-color .3s ease, color .3s ease, box-shadow .3s ease, transform .3s var(--ease); }
.btn:hover { border-color: var(--coral); background: var(--coral); color: #fff; box-shadow: 0 12px 25px rgba(239, 127, 98, .22); transform: translateY(-3px); }
.btn-light { border-color: #fff; background: #fff; color: var(--deep); }
.btn-light:hover { border-color: var(--sun); background: var(--sun); color: var(--deep); }
.btn-dark { border-color: var(--deep); background: var(--deep); color: var(--paper); }
.btn-dark:hover { border-color: var(--coral); background: var(--coral); color: #fff; }
.btn-nav { min-height: 39px; padding: 9px 14px; }
.whatsapp-link { display: inline-flex; align-items: center; gap: 6px; color: inherit; font-size: 10px; font-weight: 700; white-space: nowrap; transition: color .25s ease, transform .25s var(--ease); }
.whatsapp-link span { display: inline-grid; place-items: center; width: 21px; height: 21px; border: 1px solid #53b989; border-radius: 50%; color: #53b989; font-size: 14px; }
.whatsapp-link:hover { color: var(--coral); transform: translateY(-2px); }
.whatsapp-link:hover span { border-color: var(--coral); color: var(--coral); }
.menu-toggle { display: none; width: 36px; height: 36px; margin-left: auto; border: 0; background: transparent; color: inherit; }
.menu-toggle span { display: block; width: 22px; height: 1px; margin: 5px auto; background: currentColor; transition: transform .3s ease; }

.page-shell { min-height: 70vh; opacity: 0; transform: translateY(18px); }
.page-shell:focus { outline: none; }
.page-shell.is-ready { animation: pageIn .8s var(--ease) forwards; }
.route-changing .page-shell { opacity: 1; transform: none; animation: none; }
.page-shell.route-ready { opacity: 1; transform: none; animation: none; }
.route-cover { position: fixed; z-index: 70; right: 0; bottom: -14vh; left: 0; width: 100%; height: 118vh; overflow: hidden; pointer-events: none; opacity: 0; background: linear-gradient(160deg, var(--teal) 0%, var(--deep-2) 48%, var(--deep) 100%); border-radius: 50% 50% 0 0 / 11% 11% 0 0; box-shadow: 0 -12px 0 rgba(115, 216, 208, .58), 0 -25px 0 rgba(246, 198, 109, .28); transform: translateY(110%); }
.route-cover::before { content: ''; position: absolute; top: -27px; right: -5%; left: -5%; height: 78px; border-radius: 50%; background: rgba(255, 253, 248, .22); box-shadow: 0 25px 0 -10px rgba(115, 216, 208, .76), 0 37px 0 -18px rgba(246, 198, 109, .44); transform: rotate(-2deg); }
.route-cover::after { content: ''; position: absolute; top: 17px; right: -8%; left: -8%; height: 84px; border: 2px solid rgba(255, 253, 248, .3); border-color: rgba(255, 253, 248, .3) transparent transparent; border-radius: 50%; transform: rotate(2deg); }
.route-cover.is-active { pointer-events: auto; animation: routeWave 1.1s var(--ease) both; }
.eyebrow { margin: 0 0 18px; color: var(--teal-dark); font-size: 10px; font-weight: 800; letter-spacing: .19em; line-height: 1.4; text-transform: uppercase; }
.eyebrow--light { color: var(--sun); }
.eyebrow-dot { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 5px rgba(239, 127, 98, .17); vertical-align: 1px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 500; }
h1 em, h2 em, h3 em, blockquote em { color: var(--coral); font-style: italic; }
.section { padding: clamp(78px, 10vw, 150px) clamp(24px, 7vw, 112px); }
.section--tight { padding: clamp(46px, 6vw, 90px) clamp(24px, 7vw, 112px); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 48px; max-width: 1210px; margin: 0 auto 45px; }
.section-heading h2, .intro-copy h2, .feature-copy h2, .package-intro-copy h2, .editorial-copy h2, .water-intro-copy h2, .stays-intro h2, .about-story h2, .contact-intro h2 { margin: 0; color: var(--deep); font: 500 clamp(42px, 5.5vw, 78px)/.98 var(--serif); letter-spacing: -.06em; }
.section-heading > p, .intro-detail > p, .package-intro-copy > p, .section-heading > div + p { max-width: 365px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
.gallery-section .section-heading > div:last-child > p, .specials-section .section-heading > div:last-child > p { max-width: 365px; margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.text-button { display: inline-flex; align-items: center; gap: 10px; border: 0; padding: 0 0 7px; border-bottom: 1px solid currentColor; background: transparent; color: var(--deep); font-size: 11px; font-weight: 800; letter-spacing: .04em; transition: gap .3s var(--ease), color .25s ease; }
.text-button:hover { gap: 17px; color: var(--coral); }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

/* Home hero */
.hero { position: relative; min-height: min(850px, 100vh); overflow: hidden; isolation: isolate; background: var(--deep); color: #fff; }
.hero-backdrop, .hero-wash, .hero-grain { position: absolute; inset: 0; }
.hero-backdrop { z-index: -3; background-color: var(--deep); background-image: linear-gradient(90deg, rgba(5, 32, 42, .88) 0%, rgba(5, 32, 42, .6) 40%, rgba(5, 32, 42, .08) 78%), var(--hero-image, var(--photo-fallback)); background-position: var(--hero-position, center); background-repeat: no-repeat; background-size: cover; transform: scale(1.04); animation: heroZoom 18s ease-in-out infinite alternate; }
.hero-wash { z-index: -2; background: radial-gradient(circle at 80% 21%, rgba(246, 198, 109, .28), transparent 17%), linear-gradient(180deg, rgba(8, 47, 58, .1), rgba(8, 47, 58, .45)); mix-blend-mode: screen; }
.hero-grain { z-index: -1; background: linear-gradient(115deg, transparent 36%, rgba(115, 216, 208, .14) 36.4%, transparent 37%), radial-gradient(circle at 88% 74%, rgba(115, 216, 208, .35), transparent 20%); opacity: .65; }
.hero-content { position: relative; z-index: 2; width: min(700px, 72vw); padding: clamp(170px, 23vh, 235px) 0 150px clamp(24px, 10vw, 160px); }
.hero-kicker { animation: heroUp .9s var(--ease) both; }
.hero h1 { max-width: 720px; margin: 0 0 24px; color: #fff; font: 500 clamp(57px, 8vw, 112px)/.88 var(--serif); letter-spacing: -.075em; animation: heroUp 1s .1s var(--ease) both; }
.hero h1 em { color: var(--sun); }
.hero-lede { max-width: 420px; margin-bottom: 32px; color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.75; animation: heroUp 1s .2s var(--ease) both; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 19px; animation: heroUp 1s .3s var(--ease) both; }
.hero-actions .whatsapp-link { color: #fff; }
.hero-stats { display: flex; gap: 34px; margin-top: 70px; animation: heroUp 1s .4s var(--ease) both; }
.hero-stats span { display: grid; gap: 6px; }
.hero-stats strong { color: var(--sun); font: 500 26px var(--serif); }
.hero-stats small { color: rgba(255,255,255,.66); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.hero-art { position: absolute; z-index: 1; top: 0; right: 0; width: 53%; height: 100%; pointer-events: none; transform: translate3d(var(--pointer-x, 0), var(--pointer-y, 0), 0); transition: transform .8s var(--ease); }
.sun-disc { position: absolute; top: 19%; right: 22%; width: clamp(100px, 13vw, 185px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, #ffd98c 0, var(--sun) 53%, rgba(246,198,109,.08) 72%, transparent 73%); filter: blur(.2px); animation: sunPulse 7s ease-in-out infinite; }
.palm { position: absolute; color: rgba(6, 31, 39, .8); font-size: clamp(130px, 17vw, 250px); line-height: .5; transform-origin: bottom center; }
.palm--one { right: 7%; bottom: 5%; transform: rotate(-20deg); animation: palmSway 8s ease-in-out infinite; }
.palm--two { right: 34%; bottom: 10%; opacity: .45; font-size: clamp(85px, 12vw, 170px); transform: rotate(19deg); animation: palmSwayTwo 10s 1s ease-in-out infinite; }
.hero-boat { position: absolute; right: 25%; bottom: 28%; width: 154px; height: 56px; border-bottom: 13px solid #132e33; border-radius: 0 0 60% 70%; transform: rotate(-4deg); filter: drop-shadow(0 12px 9px rgba(5, 20, 26, .3)); animation: boatFloat 6s ease-in-out infinite; }
.hero-boat::before { content: ''; position: absolute; left: 28px; bottom: 8px; width: 72px; height: 42px; border-radius: 50% 50% 0 0; background: #fff9e8; transform: skew(-18deg); }
.hero-boat span { position: absolute; left: 60px; bottom: 49px; width: 3px; height: 50px; background: #132e33; }
.hero-boat span::after { content: ''; position: absolute; top: 4px; left: 3px; width: 33px; height: 29px; background: var(--coral); clip-path: polygon(0 0, 100% 75%, 0 100%); }
.hero-boat i { position: absolute; left: -52px; bottom: -17px; width: 250px; height: 20px; border-top: 2px solid rgba(115,216,208,.62); border-radius: 50%; animation: wake 2.8s ease-in-out infinite; }
.hero-wave { position: absolute; right: -12%; bottom: 7%; width: 110%; height: 86px; border-top: 1px solid rgba(115, 216, 208, .45); border-radius: 50%; transform: rotate(-5deg); }
.hero-wave--one { opacity: .7; animation: waveMove 11s linear infinite; }
.hero-wave--two { bottom: 15%; opacity: .3; transform: rotate(3deg); animation: waveMove 14s 2s linear infinite reverse; }
.hero-stamp { position: absolute; right: 10%; top: 48%; display: grid; place-items: center; width: 94px; height: 94px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: rgba(255,255,255,.75); font-size: 13px; font-weight: 700; letter-spacing: .16em; line-height: 1.2; text-align: center; transform: rotate(12deg); animation: stampFloat 7s ease-in-out infinite; }
.hero-stamp small { color: var(--sun); font: italic 13px var(--serif); letter-spacing: 0; }
.hero-scroll { position: absolute; z-index: 3; right: 6vw; bottom: 42px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.68); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; transform: rotate(90deg) translateX(100%); transform-origin: right; }
.hero-scroll span { display: block; width: 48px; height: 1px; background: currentColor; animation: scrollLine 2s ease-in-out infinite; }
.motion-toggle { position: absolute; z-index: 4; right: 29px; bottom: 28px; border: 0; background: transparent; color: rgba(255,255,255,.75); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.motion-toggle:hover { color: var(--sun); }
.ticker { overflow: hidden; border-bottom: 1px solid rgba(8,47,58,.14); background: var(--teal); color: var(--deep); }
.ticker-track { display: flex; width: max-content; align-items: center; gap: 29px; padding: 15px 0; animation: ticker 25s linear infinite; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.ticker-track i { color: var(--coral); font-style: normal; }

/* Home content */
.intro-section { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(280px, .75fr); justify-content: space-between; gap: 9vw; max-width: 1280px; margin: auto; background: var(--sand); }
.intro-detail { padding-top: 58px; }
.intro-detail > p { max-width: 440px; margin-bottom: 17px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.intro-detail .text-button { margin-top: 15px; }
.feature-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(42px, 8vw, 126px); align-items: center; background: var(--paper); }
.feature-photo { position: relative; min-height: clamp(430px, 40vw, 570px); aspect-ratio: 1 / 1; overflow: hidden; background-color: var(--deep); background-image: var(--photo-fallback); background-position: center; background-repeat: no-repeat; background-size: cover; }
.feature-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(8,47,58,.63)); }
.feature-photo img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: var(--photo-position, 50% 55%); transition: transform 1s var(--ease); }
.feature-photo:hover img { transform: scale(1.06); }
.photo-label { position: absolute; z-index: 1; top: 25px; left: 28px; color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.feature-copy { max-width: 480px; }
.feature-copy h2 { margin-bottom: 28px; }
.feature-copy > p { max-width: 420px; margin-bottom: 28px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.mini-list { display: grid; gap: 0; margin: 0 0 35px; border-top: 1px solid var(--line); }
.mini-list span { padding: 13px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.mini-list b { display: inline-block; width: 34px; color: var(--coral); font-size: 10px; }
.highlight-section { background: var(--sand); }
.highlight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; max-width: 1280px; margin: auto; }
.highlight-card { position: relative; min-height: 475px; aspect-ratio: 7 / 8; overflow: hidden; isolation: isolate; background: var(--deep); color: #fff; }
.highlight-card::before { content: ''; position: absolute; z-index: -1; inset: 0; background-color: var(--deep); background-image: linear-gradient(180deg, rgba(8,47,58,.05), rgba(8,47,58,.88)), var(--card-image, var(--photo-fallback)); background-position: var(--card-position, center); background-repeat: no-repeat; background-size: cover; transition: transform .9s var(--ease); }
.highlight-card:hover::before { transform: scale(1.08); }
.highlight-card > div { position: absolute; right: 25px; bottom: 27px; left: 25px; }
.highlight-card .eyebrow { margin-bottom: 10px; color: var(--sun); }
.highlight-card h3 { margin-bottom: 23px; color: #fff; font: 500 34px/1.02 var(--serif); letter-spacing: -.05em; }
.highlight-card button { border: 0; border-bottom: 1px solid rgba(255,255,255,.8); padding: 0 0 6px; background: transparent; color: #fff; font-size: 10px; font-weight: 700; }
.highlight-card button:hover { color: var(--sun); }
.card-number { position: absolute; top: 24px; right: 25px; color: rgba(255,255,255,.7); font: italic 18px var(--serif); }
.quote-band { display: grid; place-items: center; min-height: 420px; padding: 90px 24px; background: var(--coral); color: #fff; text-align: center; }
.quote-mark { height: 55px; color: var(--sun); font: 100px/.8 var(--serif); }
.quote-band p { margin: 0 0 25px; font: 500 clamp(40px, 5.8vw, 78px)/.94 var(--serif); letter-spacing: -.06em; }
.quote-band em { color: var(--deep); }
.quote-band > span { font-size: 9px; font-weight: 800; letter-spacing: .22em; }
.home-cta { max-width: 780px; margin: auto; text-align: center; }
.home-cta h2 { margin-bottom: 24px; color: var(--deep); font: 500 clamp(46px, 6vw, 84px)/.95 var(--serif); letter-spacing: -.07em; }
.home-cta > p:not(.eyebrow) { max-width: 425px; margin: 0 auto 28px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.home-cta > div { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 22px; }
.gallery-section { background: var(--paper); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; max-width: 1210px; margin: auto; }
.gallery-card { overflow: hidden; border: 1px solid var(--line); background: var(--sand); transition: box-shadow .4s ease, transform .4s var(--ease); }
.gallery-card:hover { box-shadow: 0 18px 38px rgba(8,47,58,.12); transform: translateY(-6px); }
.gallery-art { height: auto; min-height: 0; aspect-ratio: 1 / 1; overflow: hidden; background-color: var(--deep); background-image: var(--photo-fallback); background-position: center; background-repeat: no-repeat; background-size: cover; }
.gallery-art img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-position, 50% 50%); transition: transform .8s var(--ease); }
.gallery-card:hover .gallery-art img { transform: scale(1.07); }
.gallery-caption { display: flex; align-items: start; gap: 14px; padding: 19px; }
.gallery-caption > span { color: var(--coral); font: italic 16px var(--serif); }
.gallery-caption .eyebrow { margin-bottom: 6px; font-size: 8px; }
.gallery-caption h3 { margin: 0; color: var(--deep); font: 500 24px/1.05 var(--serif); }
.stay-gallery-section { background: var(--paper); }
.stay-photo-copy { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.illustration-note { display: flex; max-width: 1210px; align-items: start; gap: 14px; margin: 30px auto 0; padding: 18px 20px; border-left: 2px solid var(--sun); background: var(--sand); }
.illustration-note > span { color: var(--coral); font-size: 22px; }
.illustration-note p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.specials-section { background: var(--sand); }
.specials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1210px; margin: auto; }
.special-card { min-height: 325px; padding: 27px; border: 1px solid var(--line); background: var(--paper); transition: background .35s ease, color .35s ease, transform .4s var(--ease); }
.special-card:hover { background: var(--deep); color: #fff; transform: translateY(-7px) rotate(-1deg); }
.special-icon { display: block; margin-bottom: 31px; font-size: 28px; }
.special-card .eyebrow { margin-bottom: 9px; }
.special-card h3 { margin: 0 0 13px; color: var(--deep); font: 500 30px/1.05 var(--serif); letter-spacing: -.04em; }
.special-card:hover h3 { color: #fff; }
.special-card > p:not(.eyebrow) { min-height: 55px; margin-bottom: 17px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.special-card:hover > p:not(.eyebrow) { color: rgba(255,255,255,.67); }
.special-card small { display: block; min-height: 31px; margin-bottom: 24px; color: var(--coral); font-size: 10px; font-weight: 800; line-height: 1.5; text-transform: uppercase; }
.special-card:hover small { color: var(--sun); }
.special-card .text-button { color: inherit; }
.trust-section { padding: clamp(80px, 10vw, 145px) clamp(24px, 7vw, 112px); background: var(--deep); color: #fff; }
.trust-section .section-heading { max-width: 1210px; }
.trust-section .section-heading h2 { color: #fff; }
.trust-section .section-heading > p { color: rgba(255,255,255,.64); }
.trust-metrics { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 1210px; margin: 0 auto 53px; border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.trust-metrics div { display: grid; gap: 8px; min-height: 125px; align-content: center; padding: 19px; border-right: 1px solid rgba(255,255,255,.2); }
.trust-metrics div:last-child { border-right: 0; }
.trust-metrics strong { color: var(--sun); font: 500 37px var(--serif); }
.trust-metrics span { color: rgba(255,255,255,.62); font-size: 9px; line-height: 1.45; text-transform: uppercase; }
.trust-stories { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1210px; margin: auto; }
.trust-story { min-height: 260px; padding: 24px; border: 1px solid rgba(255,255,255,.17); transition: background .35s ease, border-color .35s ease, transform .4s var(--ease); }
.trust-story:hover { border-color: var(--teal); background: rgba(115,216,208,.08); transform: translateY(-6px); }
.trust-story > span { color: var(--sun); font-size: 10px; font-weight: 800; }
.trust-story .eyebrow { margin: 37px 0 9px; color: var(--teal); font-size: 8px; }
.trust-story h3 { margin-bottom: 19px; color: #fff; font: 500 27px/1.05 var(--serif); }
.trust-story blockquote { margin: 0; color: rgba(255,255,255,.66); font: italic 15px/1.6 var(--serif); }
.comparison-section { background: var(--paper); }
.comparison-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1210px; margin: auto; }
.comparison-card { position: relative; min-height: 350px; padding: 28px; border: 1px solid var(--line); background: var(--sand); transition: transform .4s var(--ease), box-shadow .35s ease, border-color .35s ease; }
.comparison-card:hover { border-color: var(--teal); box-shadow: 0 18px 40px rgba(8,47,58,.1); transform: translateY(-7px); }
.comparison-card.is-featured { border-color: var(--coral); background: #fff5ee; }
.comparison-number { position: absolute; top: 25px; right: 26px; color: var(--coral); font: italic 18px var(--serif); }
.comparison-card .eyebrow { margin-bottom: 8px; }
.comparison-card h3 { margin: 0 0 13px; color: var(--deep); font: 500 31px/1.03 var(--serif); }
.comparison-price { display: block; margin: 0 0 14px; color: var(--coral); font-size: 17px; line-height: 1.25; }
.comparison-card > p:not(.eyebrow) { min-height: 57px; margin-bottom: 19px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.comparison-card ul { display: grid; gap: 8px; margin: 0 0 25px; padding: 17px 0 0; border-top: 1px solid var(--line); list-style: none; }
.comparison-card li { color: var(--muted); font-size: 11px; }
.comparison-card li::before { content: '✦'; margin-right: 8px; color: var(--coral); }
.goa-map-section { background: var(--sand); }
.goa-map-layout { display: grid; grid-template-columns: minmax(330px, 1.1fr) minmax(280px, .9fr); gap: 55px; max-width: 1210px; align-items: center; margin: auto; }
.goa-map-illustration { position: relative; min-height: 470px; overflow: hidden; background: radial-gradient(circle at 77% 22%, rgba(246,198,109,.8), transparent 14%), linear-gradient(145deg, #0c4a5b, #117c83); isolation: isolate; }
.goa-map-illustration::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(125deg, transparent 0 34px, rgba(255,255,255,.06) 35px 36px); opacity: .55; }
.map-shape { position: absolute; top: 9%; left: 17%; width: 63%; height: 82%; border-radius: 47% 55% 41% 54% / 31% 42% 56% 61%; background: linear-gradient(150deg, #83c29f, #e1bf7e 68%, #d87f62); box-shadow: 30px 25px 0 rgba(8,47,58,.15); clip-path: polygon(32% 0, 70% 7%, 83% 24%, 76% 39%, 88% 53%, 77% 76%, 61% 95%, 42% 86%, 25% 100%, 18% 76%, 4% 60%, 19% 42%, 10% 22%); transform: rotate(7deg); }
.map-sea-label { position: absolute; left: 24px; bottom: 23px; color: rgba(255,255,255,.62); font: italic 14px var(--serif); letter-spacing: .08em; transform: rotate(-9deg); }
.map-compass { position: absolute; top: 22px; right: 25px; color: rgba(255,255,255,.75); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-align: center; }
.map-compass b { color: var(--sun); font-size: 21px; }
.map-pin { position: absolute; z-index: 2; left: var(--pin-x); top: var(--pin-y); display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: var(--coral); color: #fff; font-size: 14px; box-shadow: 0 0 0 8px rgba(239,127,98,.2); transform: translate(-50%, -50%); transition: background .25s ease, transform .3s var(--ease), box-shadow .3s ease; }
.map-pin:hover, .map-pin.is-active { background: var(--sun); color: var(--deep); box-shadow: 0 0 0 11px rgba(246,198,109,.2); transform: translate(-50%, -50%) scale(1.15); }
.goa-map-result { padding: clamp(25px, 4vw, 48px); border-top: 2px solid var(--coral); background: var(--paper); }
.goa-map-result h3 { margin: 0 0 16px; color: var(--deep); font: 500 clamp(34px, 4vw, 53px)/.98 var(--serif); letter-spacing: -.06em; }
.goa-map-result > p:not(.eyebrow) { max-width: 300px; margin-bottom: 28px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.illustration { background: var(--deep); }

/* Shared page heroes */
.page-hero { position: relative; min-height: 620px; overflow: hidden; isolation: isolate; color: #fff; }
.page-hero--short { min-height: 520px; }
.page-hero--about, .page-hero--contact { min-height: 580px; }
.page-hero-image { position: absolute; z-index: -2; inset: 0; background-color: var(--deep); background-image: linear-gradient(90deg, rgba(8,47,58,.9), rgba(8,47,58,.36) 65%, rgba(8,47,58,.14)), var(--hero-image, var(--photo-fallback)); background-position: var(--hero-position, center); background-repeat: no-repeat; background-size: cover; animation: heroZoom 16s ease-in-out infinite alternate; }
.page-hero::after { content: ''; position: absolute; z-index: -1; inset: auto 0 0; height: 40%; background: linear-gradient(transparent, rgba(8,47,58,.46)); }
.page-hero-content { position: relative; z-index: 1; max-width: 720px; padding: 220px clamp(24px, 10vw, 160px) 100px; }
.page-hero--short .page-hero-content { padding-top: 185px; }
.page-hero h1 { margin: 0 0 25px; color: #fff; font: 500 clamp(54px, 7.2vw, 102px)/.9 var(--serif); letter-spacing: -.075em; }
.page-hero h1 em { color: var(--sun); }
.page-hero-content > p:last-child { max-width: 460px; margin: 0; color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.7; }
.hero-side-note { position: absolute; right: 7vw; bottom: 55px; color: rgba(255,255,255,.72); font-size: 10px; font-weight: 800; letter-spacing: .15em; line-height: 1.6; text-align: right; }
.hero-side-note span { display: block; color: var(--sun); font-size: 25px; }

/* Package page */
.package-intro { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(330px, .85fr); gap: 10vw; align-items: end; background: var(--paper); }
.package-intro-copy { max-width: 530px; }
.package-intro-copy h2 { margin-bottom: 25px; }
.package-intro-copy > p { margin-bottom: 0; }
.package-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.package-metrics div { display: grid; gap: 8px; min-height: 135px; align-content: center; padding: 20px; border-right: 1px solid var(--line); }
.package-metrics div:last-child { border-right: 0; }
.package-metrics strong { color: var(--coral); font: 500 52px var(--serif); letter-spacing: -.06em; }
.package-metrics span { color: var(--muted); font-size: 10px; line-height: 1.45; text-transform: uppercase; }
.itinerary-section { padding: clamp(80px, 10vw, 145px) clamp(24px, 7vw, 112px); background: var(--sand); }
.itinerary-section .section-heading, .itinerary-list { max-width: 1210px; margin-right: auto; margin-left: auto; }
.itinerary-list { display: grid; gap: 17px; }
.itinerary-row { display: grid; grid-template-columns: 100px 245px 1fr; gap: 32px; align-items: center; min-height: 245px; padding: 17px 30px 17px 17px; border: 1px solid var(--line); background: var(--paper); transition: border-color .3s ease, box-shadow .45s ease, transform .45s var(--ease); }
.itinerary-row:hover { border-color: var(--teal); box-shadow: 0 18px 45px rgba(8,47,58,.08); transform: translateX(6px); }
.itinerary-day { display: grid; justify-items: center; gap: 14px; color: var(--coral); }
.itinerary-day span { font-size: 27px; }
.itinerary-day strong { font-size: 10px; letter-spacing: .14em; writing-mode: vertical-rl; transform: rotate(180deg); }
.itinerary-image { overflow: hidden; height: auto; min-height: 0; aspect-ratio: 7 / 6; background-color: var(--deep); background-image: var(--photo-fallback); background-position: center; background-repeat: no-repeat; background-size: cover; }
.itinerary-image img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-position, 50% 48%); transition: transform .7s var(--ease); }
.itinerary-row:hover .itinerary-image img { transform: scale(1.08); }
.itinerary-content { max-width: 560px; }
.itinerary-content .eyebrow { margin-bottom: 10px; }
.itinerary-content h3 { max-width: 530px; margin-bottom: 18px; color: var(--deep); font: 500 clamp(25px, 3vw, 38px)/1.08 var(--serif); letter-spacing: -.04em; }
.itinerary-content ul { display: flex; flex-wrap: wrap; gap: 7px 20px; margin: 0 0 20px; padding: 0; list-style: none; }
.itinerary-content li { color: var(--muted); font-size: 11px; }
.itinerary-content li::before { content: '✦'; margin-right: 7px; color: var(--sun); }
.inclusions-section { background: var(--paper); }
.inclusions-section .section-heading, .inclusion-grid, .package-note { max-width: 1210px; margin-right: auto; margin-left: auto; }
.inclusion-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.inclusion-item { position: relative; min-height: 145px; padding: 21px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .3s ease, transform .3s var(--ease); }
.inclusion-item:hover { background: var(--sand); transform: translateY(-4px); }
.inclusion-item span { color: var(--coral); font-size: 10px; font-weight: 800; }
.inclusion-item p { max-width: 155px; margin: 29px 0 0; color: var(--deep); font: 500 18px/1.15 var(--serif); }
.inclusion-item b { position: absolute; right: 20px; bottom: 21px; color: var(--teal-dark); font-size: 18px; }
.package-note { display: flex; gap: 15px; align-items: start; margin-top: 32px; padding: 20px 22px; border-left: 2px solid var(--coral); background: var(--sand); }
.package-note > span { color: var(--coral); font-size: 22px; }
.package-note p { max-width: 900px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.package-offers-section { background: var(--sand); }
.package-offers-section--compact { background: var(--paper); }
.package-offer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 1210px; margin: auto; }
.package-offer-card { position: relative; min-height: 300px; padding: 27px; border: 1px solid var(--line); background: var(--paper); transition: border-color .3s ease, box-shadow .35s ease, transform .4s var(--ease); }
.package-offer-card:hover { border-color: var(--teal); box-shadow: 0 18px 40px rgba(8,47,58,.1); transform: translateY(-6px); }
.package-offer-number { position: absolute; top: 24px; right: 25px; color: var(--coral); font: italic 18px var(--serif); }
.package-offer-card .eyebrow { margin-bottom: 10px; }
.package-offer-card h3 { max-width: 210px; margin: 0; color: var(--deep); font: 500 28px/1.05 var(--serif); letter-spacing: -.04em; }
.package-price-card > strong { display: block; margin: 24px 0 14px; color: var(--coral); font: 500 22px/1.1 var(--serif); }
.package-offer-card > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.package-inclusion-card { border-color: var(--coral); background: #fff5ee; }
.package-inclusion-card h3 { margin-bottom: 20px; }
.package-inclusion-card h3 em { color: var(--coral); }
.package-inclusion-card ul { display: grid; gap: 9px; margin: 0 0 20px; padding: 17px 0 0; border-top: 1px solid var(--line); list-style: none; }
.package-inclusion-card li { color: var(--muted); font-size: 11px; }
.package-inclusion-card li::before { content: '✦'; margin-right: 8px; color: var(--coral); }
.package-addons-block { display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: 48px; max-width: 1210px; align-items: start; margin: 58px auto 0; padding-top: 45px; border-top: 1px solid var(--line); }
.package-addons-block h3 { margin: 0; color: var(--deep); font: 500 clamp(34px, 4vw, 52px)/.98 var(--serif); letter-spacing: -.06em; }
.package-addons-block h3 em { color: var(--coral); }
.package-addon-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.package-addon-card { display: flex; min-height: 72px; align-items: center; gap: 13px; padding: 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); transition: background .3s ease, transform .3s var(--ease); }
.package-addon-card:hover { background: var(--teal); transform: translateY(-3px); }
.package-addon-card > span { color: var(--coral); font-size: 10px; font-weight: 800; }
.package-addon-card p { flex: 1; margin: 0; color: var(--deep); font-size: 11px; line-height: 1.35; }
.package-addon-card b { color: var(--coral); font-size: 18px; font-weight: 400; }
.package-offers-note { display: flex; max-width: 1210px; align-items: start; gap: 15px; margin: 32px auto 0; padding: 20px 22px; border-left: 2px solid var(--coral); background: var(--paper); }
.package-offers-note > span { color: var(--coral); font-size: 22px; }
.package-offers-note p { max-width: 900px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.quote-builder-section { padding: clamp(78px, 10vw, 145px) clamp(24px, 7vw, 112px); background: var(--deep-2); color: #fff; }
.quote-builder-section .section-heading { max-width: 1210px; }
.quote-builder-section .section-heading h2 { color: #fff; }
.quote-builder-section .section-heading > p { color: rgba(255,255,255,.66); }
.quote-builder { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(310px, .92fr); max-width: 1210px; margin: auto; }
.quote-form { padding: clamp(26px, 4vw, 48px); background: var(--paper); color: var(--deep); }
.quote-form .form-heading { margin-bottom: 30px; }
.quote-form .form-heading h3 { color: var(--deep); }
.quote-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 23px; }
.quote-form > label, .quote-fields label { display: grid; gap: 8px; margin-bottom: 21px; color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.quote-form input[type="date"], .quote-form select { width: 100%; border: 0; border-bottom: 1px solid rgba(16,44,52,.28); border-radius: 0; padding: 11px 0; outline: 0; background: transparent; color: var(--deep); font-size: 13px; }
.quote-form input[type="date"]:focus, .quote-form select:focus { border-color: var(--coral); box-shadow: 0 1px 0 var(--coral); }
.quote-extras { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 3px 0 26px; padding: 18px; border: 1px solid var(--line); }
.quote-extras legend { grid-column: 1 / -1; margin-bottom: 4px; color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.quote-extras label { display: flex; gap: 8px; align-items: start; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.35; }
.quote-extras input { flex: 0 0 auto; margin-top: 1px; accent-color: var(--coral); }
.quote-extras input:focus-visible { outline: 2px solid var(--coral); outline-offset: 3px; }
.quote-form-note { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.quote-result { display: flex; min-height: 100%; flex-direction: column; justify-content: center; padding: clamp(30px, 4vw, 55px); background: var(--teal); color: var(--deep); }
.quote-result .eyebrow { color: var(--deep-2); }
.quote-result h3 { max-width: 360px; margin: 0 0 26px; font: 500 clamp(34px, 4vw, 55px)/.98 var(--serif); letter-spacing: -.06em; }
.quote-result > p:not(.eyebrow) { max-width: 330px; margin-bottom: 20px; color: rgba(8,47,58,.72); font-size: 13px; line-height: 1.7; }
.quote-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 25px; border-top: 1px solid rgba(8,47,58,.23); border-bottom: 1px solid rgba(8,47,58,.23); }
.quote-summary span { display: grid; gap: 5px; padding: 14px 13px 14px 0; border-right: 1px solid rgba(8,47,58,.23); }
.quote-summary span:nth-child(even) { border-right: 0; padding-left: 13px; }
.quote-summary span:last-child { grid-column: 1 / -1; border-top: 1px solid rgba(8,47,58,.23); border-right: 0; padding-left: 0; }
.quote-summary small { color: rgba(8,47,58,.63); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.quote-summary strong { font-size: 12px; line-height: 1.35; }
.quote-includes { margin-bottom: 24px; }
.quote-includes p { margin-bottom: 8px; color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.quote-includes ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.quote-includes li { padding: 7px 9px; border: 1px solid rgba(8,47,58,.25); color: rgba(8,47,58,.78); font-size: 10px; }
.quote-placeholder { display: flex; align-items: center; gap: 15px; margin-top: 27px; padding-top: 23px; border-top: 1px solid rgba(8,47,58,.23); }
.quote-placeholder span { color: var(--coral); font-size: 27px; }
.quote-placeholder small, .quote-result-note { color: rgba(8,47,58,.68); font-size: 10px; line-height: 1.55; }
.quote-result-note { display: block; margin-top: 13px; }
.quote-result.is-ready { box-shadow: inset 0 0 0 3px var(--sun); }

/* Build your own package */
.builder-section { background: var(--paper); }
.builder-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr); gap: 18px; max-width: 1210px; align-items: start; margin: auto; }
.builder-form { padding: clamp(26px, 4vw, 48px); background: var(--sand); color: var(--deep); }
.builder-form .form-heading { margin-bottom: 28px; }
.builder-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 22px; margin-bottom: 30px; }
.builder-fields label { display: grid; gap: 8px; margin-bottom: 18px; color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.builder-fields input, .builder-fields select { width: 100%; border: 0; border-bottom: 1px solid rgba(16,44,52,.28); border-radius: 0; padding: 11px 0; outline: 0; background: transparent; color: var(--deep); font-size: 13px; font-weight: 400; }
.builder-fields input:focus, .builder-fields select:focus { border-color: var(--coral); box-shadow: 0 1px 0 var(--coral); }
.builder-choice-group { margin: 0 0 25px; padding: 18px; border: 1px solid var(--line); }
.builder-choice-group legend { padding: 0 8px; color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.builder-choice-list { display: grid; gap: 8px; }
.builder-choice { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 17px; align-items: center; padding: 14px; border: 1px solid var(--line); background: var(--paper); transition: border-color .25s ease, box-shadow .25s ease, transform .25s var(--ease); }
.builder-choice:hover, .builder-choice:focus-within { border-color: var(--teal-dark); box-shadow: 0 10px 20px rgba(8,47,58,.07); transform: translateY(-2px); }
.builder-choice-copy { display: flex; min-width: 0; align-items: start; gap: 13px; }
.builder-choice-copy > span { flex: 0 0 auto; color: var(--coral); font-size: 10px; font-weight: 800; }
.builder-choice-copy h3 { margin: 0 0 5px; color: var(--deep); font: 500 21px/1.05 var(--serif); letter-spacing: -.025em; }
.builder-choice-copy p { max-width: 440px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.builder-choice-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.builder-choice-button { display: inline-flex; min-height: 39px; align-items: center; gap: 7px; border: 1px solid var(--line); padding: 8px 10px; background: transparent; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .02em; transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s var(--ease); }
.builder-choice-button b { color: var(--coral); font-size: 15px; font-weight: 400; line-height: 1; }
.builder-choice-button:hover { border-color: var(--teal-dark); color: var(--deep); transform: translateY(-2px); }
.builder-choice-button.is-selected[data-builder-state="want"] { border-color: var(--teal-dark); background: var(--teal); color: var(--deep); box-shadow: inset 0 0 0 1px rgba(8,47,58,.1); }
.builder-choice-button.is-selected[data-builder-state="not"] { border-color: var(--coral); background: #fff0e9; color: var(--deep); box-shadow: inset 0 0 0 1px rgba(239,127,98,.15); }
.builder-choice-button.is-selected b { color: var(--deep); }
.builder-choice-button:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.builder-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 4px; }
.builder-actions .btn { min-width: min(100%, 270px); }
.builder-form-note { margin: 17px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.builder-status { min-height: 18px; margin: 14px 0 0; color: var(--teal-dark); font-size: 11px; line-height: 1.6; opacity: 0; transform: translateY(5px); transition: opacity .35s ease, transform .35s ease; }
.builder-status.is-visible { opacity: 1; transform: none; }
.builder-status small { display: block; margin-top: 7px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.builder-summary { position: sticky; top: 100px; min-height: 100%; padding: clamp(28px, 4vw, 52px); background: var(--teal); color: var(--deep); }
.builder-summary .eyebrow { color: var(--deep-2); }
.builder-summary h2 { margin: 0 0 29px; color: var(--deep); font: 500 clamp(35px, 4vw, 56px)/.97 var(--serif); letter-spacing: -.06em; }
.builder-summary h2 em { color: var(--coral); }
.builder-summary-trip { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 27px; border-top: 1px solid rgba(8,47,58,.23); border-bottom: 1px solid rgba(8,47,58,.23); }
.builder-summary-trip span { display: grid; gap: 6px; min-width: 0; padding: 14px 12px 14px 0; border-right: 1px solid rgba(8,47,58,.23); }
.builder-summary-trip span + span { padding-left: 12px; }
.builder-summary-trip span:last-child { border-right: 0; }
.builder-summary-trip small { color: rgba(8,47,58,.63); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.builder-summary-trip strong { font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.builder-summary-list { display: grid; gap: 22px; }
.builder-summary-list > div { min-width: 0; }
.builder-summary-list h3 { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 9px; padding-bottom: 9px; border-bottom: 1px solid rgba(8,47,58,.23); color: var(--deep); font: 500 24px/1.05 var(--serif); }
.builder-summary-list h3 span { color: var(--coral); font: 700 10px var(--sans); letter-spacing: .08em; }
.builder-summary-list ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.builder-summary-list li { color: rgba(8,47,58,.78); font-size: 11px; line-height: 1.45; }
.builder-summary-list li::before { content: '✦'; margin-right: 8px; color: var(--coral); }
.builder-summary-list li.builder-list-empty { color: rgba(8,47,58,.58); font-style: italic; }
.builder-summary-list li.builder-list-empty::before { content: '—'; }
.builder-empty { margin: 24px 0 0; padding: 13px 15px; border-left: 2px solid var(--coral); background: rgba(255,253,248,.48); color: rgba(8,47,58,.72); font-size: 11px; line-height: 1.6; }
.builder-empty[hidden] { display: none; }
.builder-summary-note { display: flex; align-items: start; gap: 12px; margin-top: 27px; padding-top: 20px; border-top: 1px solid rgba(8,47,58,.23); }
.builder-summary-note > span { color: var(--coral); font-size: 22px; }
.builder-summary-note p { margin: 0; color: rgba(8,47,58,.68); font-size: 10px; line-height: 1.55; }

.dark-cta { position: relative; display: flex; min-height: 520px; align-items: center; justify-content: space-between; gap: 50px; overflow: hidden; padding: 100px clamp(24px, 10vw, 160px); background: var(--deep); color: #fff; isolation: isolate; }
.dark-cta::before { content: ''; position: absolute; z-index: -1; top: -40%; right: 14%; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(115,216,208,.26), transparent 64%); filter: blur(14px); }
.dark-cta h2 { margin: 0 0 24px; font: 500 clamp(50px, 7vw, 100px)/.88 var(--serif); letter-spacing: -.075em; }
.dark-cta h2 em { color: var(--teal); }
.dark-cta p:not(.eyebrow) { max-width: 340px; margin-bottom: 30px; color: rgba(255,255,255,.67); font-size: 14px; line-height: 1.75; }
.cta-orbit { position: relative; flex: 0 0 360px; aspect-ratio: 1; border: 1px solid rgba(115,216,208,.48); border-radius: 50%; transform: rotateX(63deg) rotateZ(-17deg); animation: orbit 16s linear infinite; }
.cta-orbit::before, .cta-orbit::after { content: ''; position: absolute; inset: 12%; border: 1px solid rgba(246,198,109,.55); border-radius: 50%; transform: rotateY(65deg); }
.cta-orbit::after { inset: 25%; border-color: rgba(115,216,208,.32); transform: rotateX(74deg) rotateZ(32deg); }
.cta-orbit span { position: absolute; top: 43%; left: 43%; display: grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; background: var(--sun); color: var(--deep); font-size: 11px; font-weight: 800; letter-spacing: .13em; transform: rotateX(-63deg) rotateZ(17deg); }
.cta-orbit i, .cta-orbit b { position: absolute; top: 9%; left: 48%; width: 12px; height: 12px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 25px var(--coral); }
.cta-orbit b { top: 78%; left: 22%; width: 8px; height: 8px; background: var(--teal); box-shadow: 0 0 20px var(--teal); }

/* Cruise, sightseeing and water pages */
.editorial-split, .water-intro, .stays-intro, .about-story { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(280px, .8fr); gap: 9vw; align-items: center; background: var(--paper); }
.editorial-image { position: relative; min-height: clamp(440px, 42vw, 580px); aspect-ratio: 6 / 5; overflow: hidden; background-color: var(--deep); background-image: var(--photo-fallback); background-position: center; background-repeat: no-repeat; background-size: cover; }
.editorial-image img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: var(--photo-position, 50% 50%); transition: transform .8s var(--ease); }
.editorial-image:hover img { transform: scale(1.06); }
.image-sticker, .water-badge { position: absolute; right: 25px; bottom: 25px; display: grid; place-items: center; width: 98px; height: 98px; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .12em; line-height: 1.5; text-align: center; transform: rotate(-12deg); }
.editorial-copy { max-width: 500px; }
.editorial-copy h2, .water-intro-copy h2 { margin-bottom: 25px; }
.editorial-copy > p:not(.eyebrow), .water-intro-copy > p:not(.eyebrow), .stays-intro > div:last-child > p, .about-story > div:last-child > p { color: var(--muted); font-size: 14px; line-height: 1.85; }
.detail-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 27px 0 32px; }
.detail-pills span { padding: 9px 12px; border: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.dark-feature { background: var(--deep); color: #fff; }
.dark-feature .section-heading h2, .dark-feature .section-heading > p { color: #fff; }
.dark-feature .section-heading > p { color: rgba(255,255,255,.62); }
.reason-grid, .values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; max-width: 1210px; margin: auto; }
.reason, .value { min-height: 230px; padding: 25px; border: 1px solid rgba(255,255,255,.18); transition: border-color .3s ease, background .3s ease, transform .35s var(--ease); }
.reason:hover, .value:hover { border-color: var(--teal); background: rgba(115,216,208,.08); transform: translateY(-5px); }
.reason span, .value span { color: var(--sun); font-size: 11px; font-weight: 800; }
.reason h3, .value h3 { margin: 43px 0 10px; color: #fff; font: 500 30px/1.05 var(--serif); letter-spacing: -.04em; }
.reason p, .value p { margin: 0; color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.7; }
.cruise-inclusion-list { max-width: 1210px; margin: 28px auto 0; padding: 24px 25px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.04); }
.cruise-inclusion-list .eyebrow { margin-bottom: 14px; }
.cruise-inclusion-list ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; margin: 0; padding: 0; list-style: none; }
.cruise-inclusion-list li { display: flex; gap: 10px; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.55; }
.cruise-inclusion-list li span { color: var(--sun); }
.honeymoon-day-four { display: flex; max-width: 1210px; align-items: center; gap: 24px; margin: 18px auto 0; padding: 25px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.04); }
.honeymoon-day-four > span { color: var(--sun); font: italic 32px var(--serif); }
.honeymoon-day-four h3 { margin: 0 0 8px; color: #fff; font: 500 27px/1.05 var(--serif); }
.honeymoon-day-four p:not(.eyebrow) { margin: 0; color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.7; }
.split-note { display: grid; grid-template-columns: 1fr .8fr; gap: 8vw; align-items: center; background: var(--sand); }
.split-note h2 { margin: 0; color: var(--deep); font: 500 clamp(43px, 5.4vw, 75px)/.96 var(--serif); letter-spacing: -.06em; }
.check-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.check-list li { display: flex; gap: 16px; padding: 19px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.6; }
.check-list span { color: var(--coral); }
.route-intro { background: var(--paper); }
.route-line { display: flex; max-width: 1220px; min-height: 200px; align-items: start; justify-content: space-between; margin: 75px auto 0; padding: 0 0 30px; border-bottom: 1px solid var(--line); }
.route-line::before { content: ''; position: absolute; }
.route-start, .route-end { margin-top: 22px; color: var(--coral); font-size: 9px; font-weight: 800; letter-spacing: .15em; writing-mode: vertical-rl; transform: rotate(180deg); }
.route-end { color: var(--teal-dark); }
.route-stop { position: relative; display: grid; justify-items: center; gap: 15px; width: 10%; color: var(--muted); text-align: center; }
.route-stop::before { content: ''; position: absolute; top: 8px; left: -50%; width: 100%; height: 1px; background: var(--coral); opacity: .45; }
.route-stop:first-of-type::before { display: none; }
.route-stop i { position: relative; z-index: 1; display: block; width: 17px; height: 17px; border: 4px solid var(--paper); border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 1px var(--coral); }
.route-stop span { color: var(--coral); font-size: 9px; font-weight: 800; }
.route-stop b { max-width: 90px; font-size: 9px; line-height: 1.35; }
.sightseeing-grid-section { background: var(--sand); }
.sightseeing-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; max-width: 1210px; margin: auto; }
.sight-card { background: var(--paper); transition: transform .4s var(--ease), box-shadow .4s ease; }
.sight-card:hover { box-shadow: 0 18px 40px rgba(8,47,58,.12); transform: translateY(-7px); }
.sight-card-image { position: relative; height: auto; min-height: 0; aspect-ratio: 4 / 3; overflow: hidden; background-color: var(--deep); background-image: var(--photo-fallback); background-position: center; background-repeat: no-repeat; background-size: cover; }
.sight-card-image img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-position, 50% 55%); transition: transform .8s var(--ease); }
.sight-card:hover img { transform: scale(1.08); }
.sight-card-image span { position: absolute; top: 16px; right: 16px; color: #fff; font: italic 18px var(--serif); text-shadow: 0 1px 12px rgba(0,0,0,.3); }
.sight-card > div:last-child { padding: 22px; }
.sight-card .eyebrow { margin-bottom: 9px; font-size: 8px; }
.sight-card h3 { margin-bottom: 10px; color: var(--deep); font: 500 25px/1.05 var(--serif); }
.sight-card p:last-child { min-height: 48px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.photo-break { position: relative; min-height: 650px; overflow: hidden; isolation: isolate; color: #fff; }
.photo-break-image { position: absolute; z-index: -2; inset: 0; background-color: var(--deep); background-image: linear-gradient(90deg, rgba(8,47,58,.9), rgba(8,47,58,.17)), var(--hero-image, var(--photo-fallback)); background-position: var(--hero-position, center); background-repeat: no-repeat; background-size: cover; }
.photo-break-copy { max-width: 520px; padding: 175px clamp(24px, 10vw, 160px); }
.photo-break-copy h2 { margin: 0 0 24px; color: #fff; font: 500 clamp(51px, 6.8vw, 94px)/.9 var(--serif); letter-spacing: -.07em; }
.photo-break-copy h2 em { color: var(--sun); }
.photo-break-copy p:not(.eyebrow) { max-width: 360px; margin-bottom: 31px; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.75; }
.water-intro { background: var(--paper); }
.water-intro-image { position: relative; min-height: clamp(460px, 44vw, 600px); aspect-ratio: 6 / 5; overflow: hidden; background-color: var(--deep); background-image: var(--photo-fallback); background-position: center; background-repeat: no-repeat; background-size: cover; }
.water-intro-image img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: var(--photo-position, 50% 42%); transition: transform 1s var(--ease); }
.water-intro-image:hover img { transform: scale(1.06); }
.water-badge { right: 28px; bottom: 28px; background: rgba(8,47,58,.22); }
.water-facts { display: flex; gap: 28px; margin-top: 40px; padding-top: 25px; border-top: 1px solid var(--line); }
.water-facts span { display: grid; gap: 8px; }
.water-facts strong { color: var(--coral); font: 500 37px var(--serif); }
.water-facts small { color: var(--muted); font-size: 9px; line-height: 1.3; text-transform: uppercase; }
.activity-section { background: var(--sand); }
.activity-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; max-width: 1210px; margin: auto; }
.activity-card { position: relative; min-height: 235px; padding: 23px; border: 1px solid var(--line); background: var(--paper); transition: background .35s ease, color .35s ease, transform .4s var(--ease); }
.activity-card:hover { background: var(--deep); color: #fff; transform: translateY(-7px) rotate(-1deg); }
.activity-card > span { position: absolute; top: 23px; right: 23px; color: var(--coral); font-size: 10px; font-weight: 800; }
.activity-icon { margin-bottom: 32px; font-size: 31px; }
.activity-card .eyebrow { margin-bottom: 8px; font-size: 8px; }
.activity-card h3 { margin-bottom: 9px; color: var(--deep); font: 500 26px/1.05 var(--serif); }
.activity-card:hover h3 { color: #fff; }
.activity-card p:last-child { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.activity-card:hover p:last-child { color: rgba(255,255,255,.65); }
.sea-note { display: flex; max-width: 1210px; align-items: start; gap: 15px; margin: 35px auto 0; padding: 20px; border: 1px solid rgba(239,127,98,.35); background: rgba(246,198,109,.15); }
.sea-note > span { color: var(--coral); font-size: 25px; }
.sea-note p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.dark-cta--water { min-height: 480px; }
.ripple-art { position: relative; flex: 0 0 380px; aspect-ratio: 1; }
.ripple-art i { position: absolute; inset: 15%; border: 1px solid rgba(115,216,208,.42); border-radius: 50%; animation: ripple 4.8s ease-out infinite; }
.ripple-art i:nth-child(2) { inset: 29%; animation-delay: 1.2s; }
.ripple-art i:nth-child(3) { inset: 43%; animation-delay: 2.4s; }
.ripple-art span { position: absolute; top: 43%; left: 43%; display: grid; width: 55px; height: 55px; place-items: center; border-radius: 50%; background: var(--sun); color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .12em; }

/* Stays and about */
.stays-intro, .about-story { background: var(--paper); }
.stays-intro > div:last-child, .about-story > div:last-child { max-width: 460px; }
.stays-intro > div:last-child > p, .about-story > div:last-child > p { margin-bottom: 18px; }
.stays-intro h2, .about-story h2 { margin-bottom: 24px; }
.stay-showcase { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; padding: 0 clamp(24px, 7vw, 112px) clamp(78px, 10vw, 150px); background: var(--paper); }
.stay-card { display: grid; grid-template-rows: 420px auto; overflow: hidden; background: var(--sand); }
.stay-card--small { grid-template-rows: 300px auto; margin-top: 90px; }
.stay-card-image { min-height: 0; background-color: var(--deep); background-image: linear-gradient(180deg, transparent 55%, rgba(8,47,58,.35)), var(--hero-image, var(--photo-fallback)); background-position: var(--hero-position, center); background-repeat: no-repeat; background-size: cover; transition: transform .8s var(--ease); }
.stay-card:hover .stay-card-image { transform: scale(1.04); }
.stay-card-copy { padding: 28px; }
.stay-card-copy h3 { margin-bottom: 14px; color: var(--deep); font: 500 clamp(33px, 4vw, 55px)/.94 var(--serif); letter-spacing: -.06em; }
.stay-card-copy > p:not(.eyebrow) { max-width: 390px; margin-bottom: 21px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.stay-card-copy > span { color: var(--coral); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.stay-includes { background: var(--sand); }
.comfort-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; max-width: 1210px; margin: auto; }
.comfort { padding: 27px 23px; border-top: 2px solid var(--teal); background: var(--paper); transition: transform .35s var(--ease), box-shadow .35s ease; }
.comfort:hover { box-shadow: 0 16px 35px rgba(8,47,58,.1); transform: translateY(-6px); }
.comfort > span { color: var(--coral); font-size: 23px; }
.comfort h3 { margin: 36px 0 10px; color: var(--deep); font: 500 26px/1.05 var(--serif); }
.comfort p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.page-hero--about .page-hero-image { background-position: 50% 55%; }
.values-section { padding: clamp(78px, 10vw, 145px) clamp(24px, 7vw, 112px); background: var(--deep); color: #fff; }
.values-section .section-heading { max-width: 1210px; }
.values-section .section-heading h2 { color: #fff; }
.values-section .section-heading > p { color: rgba(255,255,255,.64); }
.about-quote { display: grid; justify-items: center; text-align: center; background: var(--coral); }
.about-quote blockquote { margin: 15px 0 25px; color: #fff; font: 500 clamp(48px, 7vw, 96px)/.9 var(--serif); letter-spacing: -.075em; }
.about-quote blockquote em { color: var(--deep); }
.about-quote > span { margin-bottom: 34px; color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .2em; }

/* Contact and forms */
.contact-layout { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(390px, 1fr); gap: clamp(40px, 10vw, 140px); background: var(--paper); }
.contact-intro { max-width: 420px; }
.contact-intro h2 { margin-bottom: 25px; }
.contact-intro > p:not(.eyebrow):not(.contact-hours) { color: var(--muted); font-size: 14px; line-height: 1.8; }
.contact-list { display: grid; gap: 0; margin-top: 38px; border-top: 1px solid var(--line); }
.contact-list a { display: flex; align-items: center; gap: 15px; padding: 16px 0; border-bottom: 1px solid var(--line); transition: padding .3s var(--ease), color .25s ease; }
.contact-list a:hover { padding-left: 8px; color: var(--coral); }
.contact-list a > span { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: 15px; }
.contact-list div { display: grid; gap: 4px; }
.contact-list small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.contact-list strong { font-size: 12px; }
.contact-hours { margin-top: 28px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.trip-form { padding: clamp(25px, 4vw, 45px); background: var(--sand); }
.form-heading { display: flex; align-items: center; gap: 17px; margin-bottom: 35px; }
.form-heading > span { color: var(--coral); font: italic 21px var(--serif); }
.form-heading h3 { margin: 0; color: var(--deep); font: 500 30px var(--serif); }
.trip-form > label, .form-grid label { display: grid; gap: 8px; margin-bottom: 18px; color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.trip-form input, .trip-form select, .trip-form textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(16,44,52,.28); border-radius: 0; padding: 11px 0; outline: 0; background: transparent; color: var(--deep); font-size: 13px; font-weight: 400; }
.trip-form textarea { resize: vertical; }
.trip-form input:focus, .trip-form select:focus, .trip-form textarea:focus { border-color: var(--coral); box-shadow: 0 1px 0 var(--coral); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.form-check { display: flex !important; grid-template-columns: none !important; align-items: start; gap: 9px !important; color: var(--muted) !important; font-size: 10px !important; font-weight: 400 !important; line-height: 1.4; }
.form-check input { width: 14px; margin-top: 1px; accent-color: var(--coral); }
.form-check input:focus-visible { outline: 2px solid var(--coral); outline-offset: 3px; }
.form-status { min-height: 18px; margin: 16px 0 0; color: var(--teal-dark); font-size: 11px; line-height: 1.6; opacity: 0; transform: translateY(5px); transition: opacity .35s ease, transform .35s ease; }
.form-status.is-visible { opacity: 1; transform: none; }
.form-status-link { display: inline-flex; margin: 8px 0 0; border-bottom: 1px solid currentColor; color: var(--coral); font-weight: 800; }
.form-status small { display: block; margin-top: 7px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.faq-section { background: var(--sand); }
.faq-list { max-width: 930px; margin: auto; border-top: 1px solid var(--line); }
.faq { border-bottom: 1px solid var(--line); }
.faq summary { display: grid; grid-template-columns: 45px 1fr 24px; gap: 18px; align-items: center; padding: 22px 0; color: var(--deep); font: 500 22px/1.2 var(--serif); cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary > span { color: var(--coral); font: italic 14px var(--serif); }
.faq summary b { color: var(--coral); font: 400 24px var(--sans); transition: transform .3s ease; }
.faq[open] summary b { transform: rotate(45deg); }
.faq p { max-width: 680px; margin: -3px 42px 23px 63px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.contact-bottom { display: flex; min-height: 300px; align-items: center; justify-content: space-between; gap: 30px; padding: 70px clamp(24px, 10vw, 160px); background: var(--deep); color: #fff; }
.contact-bottom h2 { margin: 0; font: 500 clamp(39px, 5vw, 68px)/.95 var(--serif); letter-spacing: -.06em; }
.contact-bottom h2 em { color: var(--teal); }
.contact-bottom .whatsapp-link { padding: 14px 18px; border: 1px solid rgba(115,216,208,.55); color: #fff; }

/* Footer */
.site-footer { padding: 72px clamp(24px, 7vw, 112px) 24px; background: var(--paper); }
.footer-top { display: grid; grid-template-columns: 1.25fr .75fr .95fr .9fr; gap: 45px; max-width: 1280px; margin: auto; padding-bottom: 68px; }
.brand--dark { color: var(--deep); }
.footer-brand > p { margin: 24px 0 0; color: var(--deep); font: 500 26px/1.05 var(--serif); letter-spacing: -.04em; }
.footer-brand > p em { color: var(--coral); }
.footer-links { display: grid; align-content: start; justify-items: start; gap: 10px; }
.footer-label { margin: 0 0 10px; color: var(--teal-dark); font-size: 9px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.footer-links a { color: var(--muted); font-size: 11px; transition: color .25s ease; }
.footer-links a:hover { color: var(--coral); }
.footer-plain { color: var(--muted); font-size: 11px; }
.footer-note { max-width: 210px; }
.footer-note > p:not(.footer-label) { color: var(--muted); font-size: 11px; line-height: 1.7; }
.footer-bottom { display: flex; max-width: 1280px; justify-content: space-between; gap: 20px; margin: auto; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.footer-bottom i { color: var(--coral); font-style: normal; }
.sticky-contact-bar { display: none; }

/* Motion */
.motion-paused .hero-backdrop,
.motion-paused .hero-kicker,
.motion-paused .hero h1,
.motion-paused .hero-lede,
.motion-paused .hero-actions,
.motion-paused .hero-stats,
.motion-paused .sun-disc,
.motion-paused .palm,
.motion-paused .hero-boat,
.motion-paused .hero-boat i,
.motion-paused .hero-wave,
.motion-paused .hero-stamp,
.motion-paused .ticker-track,
.motion-paused .cta-orbit,
.motion-paused .ripple-art i { animation-play-state: paused !important; }
.motion-paused .page-shell { opacity: 1; transform: none; animation: none; }
@keyframes pageIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes routeWave { 0% { opacity: 0; transform: translateY(110%); border-radius: 50% 50% 0 0 / 11% 11% 0 0; } 12% { opacity: 1; } 45% { opacity: 1; transform: translateY(0); border-radius: 50% 50% 0 0 / 12% 12% 0 0; } 62% { opacity: 1; transform: translateY(-2%); border-radius: 50% 50% 0 0 / 19% 19% 0 0; } 100% { opacity: 0; transform: translateY(-112%); border-radius: 0; } }
@keyframes heroUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes heroZoom { from { transform: scale(1.04); } to { transform: scale(1.1); } }
@keyframes sunPulse { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.08); opacity: 1; } }
@keyframes palmSway { 0%, 100% { transform: rotate(-20deg); } 50% { transform: rotate(-13deg) translateX(-6px); } }
@keyframes palmSwayTwo { 0%, 100% { transform: rotate(19deg); } 50% { transform: rotate(25deg) translateX(6px); } }
@keyframes boatFloat { 0%, 100% { transform: translate3d(0,0,0) rotate(-4deg); } 50% { transform: translate3d(-18px,-9px,0) rotate(-2deg); } }
@keyframes wake { 0%, 100% { opacity: .2; transform: scaleX(.72); } 50% { opacity: .8; transform: scaleX(1); } }
@keyframes waveMove { 0% { margin-left: 0; } 50% { margin-left: -5%; } 100% { margin-left: 0; } }
@keyframes stampFloat { 0%, 100% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-11px); } }
@keyframes scrollLine { 0%, 100% { transform: scaleX(.5); transform-origin: left; } 50% { transform: scaleX(1); transform-origin: left; } }
@keyframes ticker { to { transform: translateX(-50%); } }
@keyframes orbit { to { transform: rotateX(63deg) rotateZ(343deg); } }
@keyframes ripple { 0% { opacity: 0; transform: scale(.4); } 35% { opacity: 1; } 100% { opacity: 0; transform: scale(1.35); } }

@media (max-width: 1120px) {
  .site-header { padding-right: 4vw; padding-left: 4vw; }
  .site-nav { gap: 15px; }
  .nav-list { gap: 12px; }
  .nav-list button { font-size: 9px; }
  .nav-action .whatsapp-link { display: none; }
  .hero-content { padding-left: 7vw; }
  .sightseeing-grid, .activity-grid, .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .comfort-grid { grid-template-columns: repeat(2, 1fr); }
  .package-offer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
  .site-header { height: 72px; padding: 0 24px; }
  .site-header.is-scrolled { height: 64px; }
  .site-nav { position: absolute; top: 72px; right: 0; left: 0; display: none; align-items: stretch; gap: 0; padding: 20px 24px 25px; background: var(--deep); color: #fff; box-shadow: 0 18px 30px rgba(8,47,58,.16); }
  .site-nav.is-open { display: grid; }
  .nav-list { display: grid; gap: 0; }
  .nav-list button { padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.12); text-align: left; }
  .nav-list button.nav-build { margin-left: 0; padding-left: 0; border-left: 0; }
  .nav-action { justify-content: start; padding-top: 18px; }
  .nav-action .whatsapp-link { display: inline-flex; }
  .menu-toggle { display: block; }
  .hero { min-height: 780px; }
  .hero-backdrop { background-position: var(--hero-position-mobile, 56% 50%); }
  .hero-content { width: 100%; padding: 150px 24px 220px; }
  .hero h1 { max-width: 550px; font-size: clamp(54px, 15vw, 86px); }
  .hero-art { top: 40%; right: -13%; width: 125%; height: 60%; opacity: .78; }
  .hero-stats { margin-top: 45px; }
  .hero-stats strong { font-size: 22px; }
  .hero-scroll { display: none; }
  .motion-toggle { right: 21px; bottom: 20px; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 25px; }
  .intro-section, .feature-split, .package-intro, .editorial-split, .water-intro, .stays-intro, .about-story, .split-note, .contact-layout, .builder-layout { grid-template-columns: 1fr; gap: 45px; }
  .quote-builder { grid-template-columns: 1fr; }
  .quote-result { min-height: 390px; }
  .builder-summary { position: static; min-height: 0; }
  .builder-fields { grid-template-columns: 1fr 1fr; }
  .gallery-grid, .specials-grid, .trust-stories, .comparison-grid { grid-template-columns: 1fr; }
  .gallery-art { aspect-ratio: 16 / 9; }
  .trust-metrics { grid-template-columns: 1fr 1fr; }
  .trust-metrics div:nth-child(2) { border-right: 0; }
  .trust-metrics div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.2); }
  .goa-map-layout { grid-template-columns: 1fr; gap: 24px; }
  .goa-map-illustration { min-height: 390px; }
  .package-addons-block { grid-template-columns: 1fr; gap: 28px; }
  .intro-detail { padding-top: 0; }
  .feature-photo, .editorial-image, .water-intro-image { min-height: 0; aspect-ratio: 4 / 3; }
  .feature-photo img, .editorial-image img, .water-intro-image img { min-height: 0; }
  .highlight-grid, .reason-grid, .values-grid { grid-template-columns: 1fr; }
  .cruise-inclusion-list ul { grid-template-columns: 1fr; }
  .honeymoon-day-four { align-items: flex-start; }
  .highlight-card { min-height: 420px; aspect-ratio: 16 / 10; }
  .page-hero-image, .photo-break-image { background-position: var(--hero-position-mobile, center 45%); }
  .highlight-card::before { background-position: var(--card-position-mobile, center); }
  .stay-card-image { background-position: var(--hero-position-mobile, center); }
  .page-hero, .page-hero--about, .page-hero--contact { min-height: 560px; }
  .page-hero-content, .page-hero--short .page-hero-content { padding: 165px 24px 90px; }
  .page-hero h1 { font-size: clamp(53px, 14vw, 85px); }
  .hero-side-note { right: 24px; bottom: 30px; }
  .itinerary-row { grid-template-columns: 55px 1fr; gap: 16px; padding: 15px; }
  .itinerary-day { grid-row: span 2; }
  .itinerary-image { grid-column: 2; height: 220px; }
  .itinerary-content { grid-column: 2; }
  .inclusion-grid { grid-template-columns: repeat(2, 1fr); }
  .dark-cta { min-height: 650px; display: block; padding-top: 90px; }
  .cta-orbit, .ripple-art { width: 290px; margin: 60px auto 0; }
  .route-line { overflow-x: auto; justify-content: start; gap: 20px; padding-bottom: 30px; }
  .route-start, .route-end { flex: 0 0 26px; }
  .route-stop { flex: 0 0 95px; }
  .route-stop::before { left: -47px; width: 48px; }
  .sightseeing-grid, .activity-grid { grid-template-columns: 1fr 1fr; }
  .stay-showcase { grid-template-columns: 1fr; }
  .stay-card--small { margin-top: 0; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-note { max-width: none; }
  .contact-bottom { display: block; }
.contact-bottom .whatsapp-link { margin-top: 30px; }
  body { padding-bottom: 63px; }
  .sticky-contact-bar { position: fixed; z-index: 49; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: .7fr 1.2fr 1fr; align-items: center; min-height: 63px; padding: 8px 13px; background: rgba(8,47,58,.97); box-shadow: 0 -10px 28px rgba(8,47,58,.17); }
  .sticky-contact-bar > a, .sticky-contact-bar > button { min-height: 43px; justify-content: center; }
  .sticky-contact-bar > a:first-child { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-size: 10px; font-weight: 800; }
  .sticky-contact-bar > a:first-child span { color: var(--sun); }
  .sticky-contact-bar .whatsapp-link { color: #fff; font-size: 10px; }
  .sticky-contact-bar .btn { min-height: 43px; padding: 9px 11px; font-size: 10px; }
}

@media (max-width: 520px) {
  .brand { font-size: 10px; letter-spacing: .14em; }
  .brand-mark { width: 20px; font-size: 18px; }
  .section { padding: 72px 20px; }
  .section--tight { padding: 44px 20px; }
  .hero-content { padding-right: 20px; padding-left: 20px; }
  .hero-lede { font-size: 13px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .btn { width: 100%; }
  .hero-stats { gap: 15px; }
  .hero-stats small { font-size: 7px; }
  .feature-photo, .editorial-image, .water-intro-image { min-height: 0; aspect-ratio: 4 / 3; }
  .feature-photo img, .editorial-image img, .water-intro-image img { min-height: 0; }
  .highlight-card { min-height: 360px; aspect-ratio: 4 / 3; }
  .sight-card-image { aspect-ratio: 16 / 9; }
  .quote-band { min-height: 350px; }
  .quote-band p { font-size: 43px; }
  .package-metrics { grid-template-columns: 1fr; }
  .quote-fields, .quote-extras, .builder-fields { grid-template-columns: 1fr; }
  .builder-choice { grid-template-columns: 1fr; gap: 13px; }
  .builder-choice-actions { justify-content: stretch; }
  .builder-choice-button { flex: 1 1 0; justify-content: center; }
  .builder-summary-trip { grid-template-columns: 1fr; }
  .builder-summary-trip span, .builder-summary-trip span + span { padding: 11px 0; border-right: 0; border-bottom: 1px solid rgba(8,47,58,.23); }
  .builder-summary-trip span:last-child { border-bottom: 0; }
  .builder-actions { align-items: stretch; flex-direction: column; }
  .builder-actions .btn, .builder-actions .text-button { width: 100%; justify-content: center; }
  .package-offer-grid, .package-addon-grid { grid-template-columns: 1fr; }
  .package-metrics div { min-height: 95px; grid-template-columns: 65px 1fr; align-items: center; }
  .package-metrics strong { font-size: 42px; }
  .package-metrics span { align-self: center; }
  .itinerary-row { grid-template-columns: 1fr; }
  .itinerary-day { display: flex; justify-content: space-between; }
  .itinerary-day strong { writing-mode: initial; transform: none; }
  .itinerary-image, .itinerary-content { grid-column: auto; }
  .inclusion-grid, .sightseeing-grid, .activity-grid, .comfort-grid, .gallery-grid { grid-template-columns: 1fr; }
  .inclusion-item { min-height: 125px; }
  .stay-card { grid-template-rows: 270px auto; }
  .stay-card--small { grid-template-rows: 260px auto; }
  .form-grid { grid-template-columns: 1fr; }
  .faq summary { grid-template-columns: 30px 1fr 20px; gap: 10px; font-size: 18px; }
  .faq p { margin-left: 40px; }
  .footer-top { grid-template-columns: 1fr; gap: 35px; }
  .footer-bottom { flex-direction: column; gap: 9px; }
}

/* Engagement layer */
.scroll-progress {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 3px;
  overflow: hidden;
  pointer-events: none;
  background: rgba(115, 216, 208, .18);
  transform: none !important;
  transform-origin: left center;
}

.scroll-progress span {
  display: block;
  width: 100% !important;
  height: 100%;
  background: linear-gradient(90deg, var(--coral), var(--sun) 48%, var(--teal));
  box-shadow: 0 0 14px rgba(115, 216, 208, .45);
  transform: scaleX(var(--scroll-progress, 0));
  transform-origin: left center;
  transition: transform .2s linear;
}

.hero-message {
  max-width: 450px;
  min-height: 43px;
  margin: -8px 0 25px;
  padding: 11px 16px;
  border-left: 2px solid var(--sun);
  background: rgba(8, 47, 58, .32);
  color: rgba(255, 255, 255, .76);
  font-size: 12px;
  line-height: 1.55;
  letter-spacing: .01em;
}

.trust-strip {
  background: var(--paper);
}

.trust-strip .section-heading {
  margin-bottom: 34px;
}

.trust-strip-inner {
  overflow: hidden;
  background: var(--sand);
  box-shadow: 0 12px 30px rgba(8, 47, 58, .045);
}

.trust-strip .trust-metrics {
  border-color: var(--line);
}

.trust-strip .trust-metrics div {
  border-color: var(--line);
}

.trust-strip .trust-metrics strong {
  color: var(--coral);
}

.trust-strip .trust-metrics span {
  color: var(--muted);
}

.trust-strip-inner > div {
  transition: background .3s ease, box-shadow .3s ease;
}

.trust-strip-inner > div:hover {
  background: rgba(115, 216, 208, .1);
  box-shadow: inset 0 -2px 0 var(--teal);
}

.mood-section {
  background: var(--sand);
}

.mood-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.mood-card {
  min-height: 420px;
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 10px 25px rgba(8, 47, 58, .08);
  transition: transform .4s var(--ease), box-shadow .4s ease, border-color .3s ease;
}

.mood-card > div {
  right: 22px;
  bottom: 24px;
  left: 22px;
}

.mood-card h3 {
  margin-bottom: 12px;
}

.mood-card > div > p:not(.eyebrow) {
  max-width: 285px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, .72);
  font-size: 12px;
  line-height: 1.55;
}

.mood-card .text-button {
  color: #fff;
  transition: gap .3s var(--ease), color .25s ease, border-color .25s ease;
}

.mood-card .text-button:hover {
  color: var(--sun);
}

.mood-card:hover,
.mood-card:focus-within {
  border-color: rgba(115, 216, 208, .72);
  box-shadow: 0 20px 42px rgba(8, 47, 58, .16);
  transform: translateY(-7px);
}

.mood-card:focus-within::before {
  transform: scale(1.06);
}

.mood-card button:focus-visible {
  outline: 3px solid var(--sun);
  outline-offset: 4px;
}

.season-section {
  background: var(--paper);
}

.season-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.season-card {
  display: flex;
  min-height: 320px;
  flex-direction: column;
  border-top: 2px solid var(--teal);
  background: var(--sand);
}

.season-card:nth-child(2) {
  border-top-color: var(--coral);
}

.season-card:nth-child(3) {
  border-top-color: var(--sun);
}

.season-card > p:not(.eyebrow) {
  max-width: 390px;
  margin-bottom: 22px;
}

.season-card small {
  display: block;
  margin-top: auto;
  color: var(--teal-dark);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.4;
  text-transform: uppercase;
}

.season-card:nth-child(1):hover {
  border-top-color: var(--teal);
}

.season-card:nth-child(2):hover {
  border-top-color: var(--coral);
}

.season-card:nth-child(3):hover {
  border-top-color: var(--sun);
}

.next-steps {
  background: var(--paper);
}

.next-step-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.next-step {
  display: flex;
  min-height: 285px;
  flex-direction: column;
  border-top: 2px solid var(--coral);
  background: var(--sand);
}

.next-step:nth-child(2) {
  border-top-color: var(--teal);
}

.next-step:nth-child(3) {
  border-top-color: var(--sun);
}

.next-step:nth-child(4) {
  border-top-color: var(--teal-dark);
}

.next-step h3 {
  margin-bottom: 14px;
  font-size: 27px;
}

.next-step > p:not(.eyebrow) {
  max-width: 245px;
  margin-bottom: 0;
}

.next-steps-action {
  display: flex;
  max-width: 1210px;
  justify-content: flex-end;
  margin: 30px auto 0;
}

.trip-quiz {
  background: var(--sand);
}

.trip-quiz-panel {
  max-width: 980px;
  min-height: 0;
  margin: 0 auto;
  padding: clamp(27px, 4vw, 48px);
  border-color: var(--line);
  background: var(--paper);
  box-shadow: 0 18px 42px rgba(8, 47, 58, .08);
}

.trip-quiz-panel:hover {
  border-color: var(--teal);
  box-shadow: 0 18px 42px rgba(8, 47, 58, .08);
  transform: translateY(0);
}

.quiz-progress {
  position: relative;
  height: 6px;
  overflow: hidden;
  margin-bottom: 34px;
  border-radius: 999px;
  background: rgba(16, 44, 52, .11);
}

.quiz-progress-bar {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--coral), var(--sun) 48%, var(--teal));
  box-shadow: 0 0 14px rgba(239, 127, 98, .24);
  transition: width .4s var(--ease);
}

.quiz-step {
  min-width: 0;
}

.quiz-step .eyebrow {
  margin-bottom: 12px;
}

.quiz-step h3 {
  max-width: 650px;
  margin: 0 0 10px;
  color: var(--deep);
  font: 500 clamp(29px, 4vw, 44px)/1.02 var(--serif);
  letter-spacing: -.05em;
}

.quiz-step-hint {
  max-width: 560px;
  margin: 0 0 28px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.quiz-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 30px;
}

.quiz-option {
  display: grid;
  min-height: 122px;
  align-content: start;
  gap: 9px;
  border: 1px solid var(--line);
  padding: 17px 18px;
  background: var(--sand);
  color: var(--deep);
  text-align: left;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease, color .3s ease, transform .3s var(--ease);
}

.quiz-option strong {
  font: 500 20px/1.1 var(--serif);
  letter-spacing: -.025em;
}

.quiz-option span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.quiz-option:hover {
  border-color: var(--teal-dark);
  box-shadow: 0 12px 25px rgba(8, 47, 58, .09);
  transform: translateY(-4px);
}

.quiz-option:focus-visible,
.quiz-controls button:focus-visible,
.quiz-result button:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 3px;
}

.quiz-option.is-selected {
  border-color: var(--coral);
  background: var(--deep);
  color: #fff;
  box-shadow: inset 0 0 0 2px rgba(246, 198, 109, .72), 0 14px 28px rgba(8, 47, 58, .16);
}

.quiz-option.is-selected span {
  color: rgba(255, 255, 255, .72);
}

.quiz-option.is-selected:hover {
  border-color: var(--sun);
  background: var(--deep-2);
}

.quiz-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-top: 23px;
  border-top: 1px solid var(--line);
}

.quiz-controls button:disabled {
  cursor: not-allowed;
  opacity: .4;
  transform: none;
}

.quiz-result {
  margin: 0;
  padding: clamp(24px, 3.4vw, 38px);
  border: 1px solid rgba(8, 47, 58, .18);
  background: var(--teal);
  color: var(--deep);
}

.quiz-result .eyebrow {
  color: var(--deep-2);
}

.quiz-result h3 {
  max-width: 700px;
  margin: 0 0 16px;
  font: 500 clamp(32px, 4.3vw, 52px)/.98 var(--serif);
  letter-spacing: -.06em;
}

.quiz-result h3:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 5px;
}

.quiz-result > p:not(.eyebrow) {
  max-width: 620px;
  margin-bottom: 25px;
  color: rgba(8, 47, 58, .72);
  font-size: 13px;
  line-height: 1.7;
}

.quiz-result-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 28px 0 24px;
}

.quiz-result-card {
  display: flex;
  min-height: 230px;
  flex-direction: column;
  align-items: flex-start;
  padding: 22px;
  border: 1px solid rgba(8, 47, 58, .2);
  background: rgba(255, 253, 248, .72);
  transition: background .3s ease, box-shadow .3s ease, transform .35s var(--ease);
}

.quiz-result-card:hover {
  background: var(--paper);
  box-shadow: 0 14px 28px rgba(8, 47, 58, .12);
  transform: translateY(-4px);
}

.quiz-result-card .eyebrow {
  margin-bottom: 12px;
}

.quiz-result-card h4 {
  margin: 0 0 12px;
  color: var(--deep);
  font: 500 25px/1.05 var(--serif);
  letter-spacing: -.035em;
}

.quiz-result-card > p:not(.eyebrow) {
  margin-bottom: 22px;
  color: rgba(8, 47, 58, .7);
  font-size: 11px;
  line-height: 1.65;
}

.quiz-result-card > button {
  margin-top: auto;
}

.quiz-result > .text-button {
  color: var(--deep);
}

.quiz-result-handoff {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(8, 47, 58, .23);
}

.quiz-result-handoff[hidden] {
  display: none !important;
}

.quiz-result-handoff .eyebrow {
  margin-bottom: 8px;
}

.quiz-result-handoff p:not(.eyebrow) {
  max-width: 430px;
  margin: 0;
  color: rgba(8, 47, 58, .68);
  font-size: 11px;
  line-height: 1.6;
}

.budget-section {
  background: var(--paper);
}

.budget-layout {
  display: grid;
  grid-template-columns: minmax(280px, .86fr) minmax(0, 1.14fr);
  gap: 16px;
  max-width: 1210px;
  margin: auto;
}

.budget-control {
  min-height: 100%;
  background: var(--sand);
}

.budget-control:hover {
  transform: none;
}

.budget-control-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 28px;
}

.budget-control-heading .eyebrow {
  margin-bottom: 9px;
}

.budget-control-heading h3 {
  margin: 0;
  color: var(--deep);
  font: 500 28px/1.05 var(--serif);
  letter-spacing: -.04em;
}

.budget-output {
  flex: 1 1 0;
  min-width: 0;
  max-width: 52%;
  color: var(--coral);
  font: 500 clamp(20px, 2.4vw, 30px)/1.05 var(--serif);
  overflow-wrap: anywhere;
  text-align: right;
}

.budget-slider {
  display: block;
  width: 100%;
  height: 28px;
  margin: 10px 0 9px;
  appearance: none;
  background: transparent;
  accent-color: var(--coral);
}

.budget-slider::-webkit-slider-runnable-track {
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--coral), var(--sun) 52%, var(--teal));
}

.budget-slider::-moz-range-track {
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--coral), var(--sun) 52%, var(--teal));
}

.budget-slider::-webkit-slider-thumb {
  width: 23px;
  height: 23px;
  margin-top: -9px;
  appearance: none;
  border: 3px solid var(--paper);
  border-radius: 50%;
  background: var(--deep);
  box-shadow: 0 0 0 1px var(--deep), 0 6px 14px rgba(8, 47, 58, .2);
}

.budget-slider::-moz-range-thumb {
  width: 17px;
  height: 17px;
  border: 3px solid var(--paper);
  border-radius: 50%;
  background: var(--deep);
  box-shadow: 0 0 0 1px var(--deep), 0 6px 14px rgba(8, 47, 58, .2);
}

.budget-slider:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 5px;
}

.budget-scale {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.budget-control-note {
  margin: 32px 0 0;
  padding-top: 17px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.65;
}

.budget-result {
  min-width: 0;
  padding: clamp(28px, 4vw, 52px);
  background: var(--teal);
  color: var(--deep);
}

.budget-result .eyebrow {
  color: var(--deep-2);
}

.budget-result h3 {
  max-width: 560px;
  margin: 0 0 16px;
  color: var(--deep);
  font: 500 clamp(34px, 4.5vw, 58px)/.96 var(--serif);
  letter-spacing: -.065em;
}

.budget-result > p:not(.eyebrow):not(.budget-result-note) {
  max-width: 530px;
  margin-bottom: 25px;
  color: rgba(8, 47, 58, .72);
  font-size: 13px;
  line-height: 1.7;
}

.budget-result ul {
  display: grid;
  gap: 9px;
  margin: 0 0 28px;
  padding: 17px 0 0;
  border-top: 1px solid rgba(8, 47, 58, .23);
  list-style: none;
}

.budget-result li {
  color: rgba(8, 47, 58, .78);
  font-size: 11px;
  line-height: 1.45;
}

.budget-result li::before {
  content: '✦';
  margin-right: 8px;
  color: var(--coral);
}

.budget-result-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 19px;
}

.budget-result-actions .whatsapp-link {
  color: var(--deep);
}

.budget-result-note {
  margin: 24px 0 0;
  padding-top: 17px;
  border-top: 1px solid rgba(8, 47, 58, .23);
  color: rgba(8, 47, 58, .63);
  font-size: 10px;
  line-height: 1.6;
}

.traveller-section {
  background: var(--sand);
}

.traveller-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  max-width: 1280px;
  margin: auto;
}

.traveller-card {
  min-height: 420px;
  aspect-ratio: 4 / 5;
}

.traveller-card::before {
  background-image: linear-gradient(180deg, rgba(8, 47, 58, .05), rgba(8, 47, 58, .9)), var(--card-image, var(--photo-fallback));
}

.traveller-card > div > p:not(.eyebrow) {
  max-width: 285px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, .74);
  font-size: 12px;
  line-height: 1.55;
}

.traveller-card .text-button {
  color: #fff;
}

.traveller-card .text-button:hover {
  color: var(--sun);
}

.builder-summary-profile {
  margin: 0 0 24px;
  padding: 16px 17px;
  border: 1px solid rgba(8, 47, 58, .2);
  background: rgba(255, 253, 248, .46);
}

.builder-summary-profile .eyebrow {
  margin-bottom: 8px;
}

.builder-summary-profile strong {
  display: block;
  margin-bottom: 7px;
  color: var(--deep);
  font-size: 13px;
  line-height: 1.35;
}

.builder-summary-profile p:last-child {
  margin: 0;
  color: rgba(8, 47, 58, .68);
  font-size: 10px;
  line-height: 1.55;
}

.gallery-toolbar {
  display: flex;
  width: min(1210px, 100%);
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: -10px auto 29px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--line);
}

.gallery-filter {
  min-height: 38px;
  border: 1px solid var(--line);
  padding: 9px 14px;
  background: transparent;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s var(--ease);
}

.gallery-filter:hover {
  border-color: var(--teal-dark);
  color: var(--deep);
  transform: translateY(-2px);
}

.gallery-filter.is-active {
  border-color: var(--deep);
  background: var(--deep);
  color: var(--paper);
}

.gallery-filter:focus-visible,
.gallery-filter.is-active:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 3px;
}

.gallery-open {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
}

.gallery-open:hover img,
.gallery-open:focus-visible img {
  transform: scale(1.05);
}

.gallery-open:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid var(--coral);
  outline-offset: -4px;
}

.gallery-lightbox {
  position: fixed;
  z-index: 120;
  inset: 0;
  display: grid;
  align-items: center;
  justify-items: center;
  overflow: auto;
  padding: 24px;
  background: rgba(8, 47, 58, .82);
  backdrop-filter: blur(10px);
  overscroll-behavior: contain;
}

.gallery-lightbox-panel {
  display: flex;
  width: min(980px, 100%);
  max-height: min(900px, calc(100vh - 48px));
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(255, 253, 248, .35);
  background: var(--paper);
  color: var(--deep);
  box-shadow: 0 25px 70px rgba(0, 0, 0, .3);
}

.gallery-lightbox-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 24px;
  padding: 25px clamp(22px, 4vw, 42px) 20px;
  border-bottom: 1px solid var(--line);
}

.gallery-lightbox-header .eyebrow {
  margin-bottom: 9px;
}

.gallery-lightbox-header h2 {
  margin: 0;
  color: var(--deep);
  font: 500 clamp(32px, 4.2vw, 54px)/.98 var(--serif);
  letter-spacing: -.06em;
}

.gallery-lightbox-close {
  display: inline-grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  border: 1px solid var(--line);
  background: var(--sand);
  color: var(--deep);
  font-size: 29px;
  font-weight: 400;
  line-height: 1;
  transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s var(--ease);
}

.gallery-lightbox-close:hover,
.gallery-lightbox-close:focus-visible {
  border-color: var(--coral);
  background: var(--coral);
  color: #fff;
  transform: rotate(5deg);
}

.gallery-lightbox-close:focus-visible,
.gallery-lightbox-control:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 3px;
}

.gallery-lightbox-body {
  display: grid;
  min-height: 0;
  grid-template-columns: 46px minmax(0, 1fr) 46px;
  gap: 18px;
  align-items: center;
  overflow: auto;
  padding: clamp(22px, 4vw, 42px) clamp(18px, 4vw, 42px) 20px;
  overscroll-behavior: contain;
}

.gallery-lightbox-control {
  display: inline-grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid var(--line);
  background: var(--sand);
  color: var(--deep);
  font-size: 20px;
  line-height: 1;
  transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s var(--ease);
}

.gallery-lightbox-control:hover {
  border-color: var(--teal-dark);
  background: var(--teal);
  transform: translateY(-2px);
}

.gallery-lightbox-control:disabled {
  cursor: not-allowed;
  opacity: .45;
  transform: none;
}

.gallery-lightbox-body figure {
  width: min(100%, 760px);
  min-width: 0;
  margin: 0 auto;
}

.gallery-lightbox-body img {
  width: 100%;
  height: auto;
  max-height: min(58vh, 560px);
  object-fit: contain;
  border: 1px solid var(--line);
  background: var(--deep);
}

.gallery-lightbox-body figcaption {
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.gallery-lightbox-count {
  margin: 0;
  padding: 0 clamp(22px, 4vw, 42px) 23px;
  color: var(--teal-dark);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-align: center;
}

.gallery-lightbox-open {
  overflow: hidden;
  overscroll-behavior: none;
}

.map-result-photo {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin: 0 0 25px;
  border: 1px solid var(--line);
}

.map-result-note {
  max-width: none !important;
  margin-top: -5px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: var(--muted) !important;
  font-size: 10px !important;
  line-height: 1.6 !important;
}

.itinerary-progress {
  position: relative;
  max-width: 1210px;
  margin: 0 auto 38px;
  padding-top: 4px;
}

.itinerary-progress-bar {
  position: absolute;
  z-index: 0;
  top: 4px;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--coral), var(--sun) 52%, var(--teal));
  transform: scaleX(var(--itinerary-progress, 0));
  transition: transform .55s var(--ease);
  transform-origin: left center;
}

.itinerary-progress-days {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-top: 15px;
}

.itinerary-progress-days span {
  position: relative;
  flex: 1 1 0;
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.35;
  text-align: center;
}

.itinerary-progress-days span.is-active {
  color: var(--deep);
}

.itinerary-progress-days span::before {
  content: '';
  display: block;
  width: 11px;
  height: 11px;
  margin: -20px auto 9px;
  border: 3px solid var(--sand);
  border-radius: 50%;
  background: var(--coral);
  box-shadow: 0 0 0 1px var(--coral);
}

.itinerary-progress-days span:nth-child(2)::before {
  background: var(--sun);
  box-shadow: 0 0 0 1px var(--sun);
}

.itinerary-progress-days span:nth-child(3)::before,
.itinerary-progress-days span:nth-child(4)::before {
  background: var(--teal);
  box-shadow: 0 0 0 1px var(--teal);
}

.itinerary-progress-days span.is-active::before {
  border-color: var(--paper);
  background: var(--deep);
  box-shadow: 0 0 0 2px var(--coral), 0 0 0 7px rgba(239, 127, 98, .16);
}

.itinerary-row.is-active {
  border-color: var(--coral);
  box-shadow: 0 18px 45px rgba(8, 47, 58, .1);
}

.quiz-step[hidden],
.quiz-result[hidden],
.quiz-controls [hidden],
.gallery-lightbox[hidden],
.gallery-card[hidden] {
  display: none !important;
}

@media (max-width: 1120px) {
  .mood-grid,
  .next-step-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .hero-message {
    max-width: 520px;
  }

  .mood-grid,
  .season-grid,
  .next-step-grid {
    grid-template-columns: 1fr;
  }

  .mood-card {
    min-height: 420px;
    aspect-ratio: 16 / 10;
  }

  .next-steps-action {
    justify-content: center;
  }

  .trip-quiz-panel {
    padding: 27px 22px;
  }

  .quiz-options,
  .quiz-result-grid {
    grid-template-columns: 1fr;
  }

  .gallery-toolbar {
    justify-content: flex-start;
    flex-wrap: nowrap;
    margin-bottom: 24px;
    overflow-x: auto;
    padding-bottom: 13px;
    scrollbar-width: thin;
  }

  .gallery-filter {
    flex: 0 0 auto;
  }

  .gallery-lightbox {
    align-items: center;
    padding: 16px;
  }

  .gallery-lightbox-panel {
    max-height: calc(100vh - 32px);
  }

  .gallery-lightbox-header {
    padding: 20px 22px 17px;
  }

  .gallery-lightbox-body {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 10px;
    padding: 20px 16px 15px;
  }

  .gallery-lightbox-control {
    width: 42px;
    height: 42px;
  }

  .gallery-lightbox-body img {
    max-height: 52vh;
  }

  .gallery-lightbox-count {
    padding-bottom: 18px;
  }

  .itinerary-progress {
    margin-bottom: 30px;
  }
}

@media (max-width: 520px) {
  .hero-message {
    min-height: 0;
    margin-bottom: 22px;
    padding: 10px 13px;
    font-size: 11px;
  }

  .trust-strip-inner > div {
    padding: 17px 14px;
  }

  .mood-card {
    min-height: 360px;
    aspect-ratio: 4 / 3;
  }

  .season-card,
  .next-step {
    min-height: 0;
  }

  .next-steps-action,
  .next-steps-action .btn {
    width: 100%;
  }

  .quiz-result {
    padding: 22px 18px;
  }

  .quiz-controls {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .quiz-controls .btn {
    width: 100%;
  }

  .gallery-lightbox {
    padding: 10px;
  }

  .gallery-lightbox-panel {
    max-height: calc(100vh - 20px);
  }

  .gallery-lightbox-header {
    padding: 18px 17px 14px;
  }

  .gallery-lightbox-header h2 {
    font-size: 29px;
  }

  .gallery-lightbox-close {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  .gallery-lightbox-body {
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    gap: 6px;
    padding: 14px 8px 12px;
  }

  .gallery-lightbox-control {
    width: 36px;
    height: 36px;
    font-size: 17px;
  }

  .gallery-lightbox-body img {
    max-height: 48vh;
  }

  .gallery-lightbox-body figcaption {
    font-size: 11px;
  }

  .map-result-photo {
    aspect-ratio: 4 / 3;
  }

  .itinerary-progress-days {
    gap: 5px;
  }

  .itinerary-progress-days span {
    font-size: 8px;
    letter-spacing: .05em;
  }
}

@media (max-width: 1120px) {
  .traveller-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .budget-layout {
    grid-template-columns: 1fr;
  }

  .traveller-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .traveller-card {
    min-height: 380px;
    aspect-ratio: 16 / 10;
  }

  .quiz-result-handoff {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .budget-control-heading {
    display: block;
  }

  .budget-output {
    display: block;
    max-width: 100%;
    margin-top: 14px;
    text-align: left;
  }

  .budget-result-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .budget-result-actions .btn,
  .budget-result-actions .whatsapp-link,
  .quiz-result-handoff .btn {
    width: 100%;
    justify-content: center;
  }

  .traveller-grid {
    grid-template-columns: 1fr;
  }

  .traveller-card {
    min-height: 340px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .page-shell, .reveal { opacity: 1; transform: none; }
  .route-cover, .ticker-track { animation: none !important; }
}
