/* Premium visual system: editorial type, warm paper and forest green. */
:root {
  --paper: #faf9f5;
  --ink: #203b36;
  --muted: #65716a;
  --coral: #ab593f;
  --coral-dark: #8f4631;
  --gold: #bd9b67;
  --line: #dfe1d7;
  --sage: #edf0e8;
  --navy: #17342f;
}
body { -webkit-font-smoothing: antialiased; }
::selection { background: #d8c7a7; color: #17342f; }
.wrap { width: min(1200px, calc(100% - 96px)); }
.section { padding-block: 120px; }
h1, h2 { font-weight: 500; letter-spacing: -.045em; }
h2 { font-size: clamp(40px, 4vw, 60px); line-height: 1.15; }
.eyebrow, .number { font-size: 10px; letter-spacing: .2em; }
.eyebrow { color: #8b6e48; margin-bottom: 26px; }
.button { border-radius: 2px; padding: 18px 25px; font-size: 13px; font-weight: 500; letter-spacing: .015em; box-shadow: 0 4px 12px #17342f08; }
.button:hover { transform: translateY(-2px); box-shadow: 0 8px 22px #17342f15; }
.button.coral { background: var(--ink); }
.button.coral:hover { background: #31524a; }
.text-link { font-size: 12px; padding-bottom: 6px; border-bottom-color: #a9b2a4; }
.header { background: #faf9f5f2; border-bottom-color: #203b3612; }
.nav { height: 90px; }
.brand, .brand img { max-width: 192px; }
.desktop-nav { gap: 25px; font-size: 11px; }
.nav-actions .small { padding: 13px 18px; font-size: 11px; }
.hero-picture { width: 100%; max-width: none; margin: 0; border-radius: 0; }
.hero-picture>img { width: 100%; height: auto; aspect-ratio: 1400 / 429; object-fit: contain; }
.photo-caption { padding-inline: max(48px, calc((100vw - 1200px)/2)); font-size: 8px; letter-spacing: .22em; }
.hero-intro { padding-block: 76px; gap: 80px; grid-template-columns: 1.2fr 1fr; }
.hero h1 { font-size: clamp(48px, 5.1vw, 76px); }
.hero h1 em { color: var(--coral); }
.hero-copy { padding-left: 38px; }
.hero-copy>p:first-child { font-size: 19px; line-height: 1.65; }
.hero-copy>p:nth-child(2) { font-size: 13px; }
.benefit-strip { width: 100%; padding: 29px max(48px, calc((100vw - 1200px)/2)); background: #f0f1e9; border-color: #e1e4d9; }
.benefit-strip strong { font-size: 12px; }
.benefit-strip p span { font-size: 10px; }
.tiny-star { color: #a98958; font-size: 25px; }
.section-heading { max-width: 720px; }
.section-heading>p:last-child { font-size: 15px; line-height: 1.8; }
.three-worlds { gap: 0; margin-top: 55px; border: 1px solid var(--line); background: #fffefa; }
.world { padding: 35px 32px; border-right: 1px solid var(--line); }
.world:last-child { padding-right: 32px; }
.world:hover { transform: none; background: #f1f3ec; }
.world-icon { font-size: 46px; height: 58px; color: #ad8b58; }
.star-icon { font-size: 60px; }
.world .number { color: var(--muted); margin: 25px 0 18px; font-size: 9px; }
.world h3 { font-size: 30px; }
.world p { font-size: 13px; line-height: 1.8; min-height: 70px; }
.round-arrow { width: 38px; height: 38px; border-color: #bec8b9; }
.aeria-section { padding-block: 110px 36px; background: radial-gradient(ellipse at top right, #315349 0, transparent 65%), var(--navy); }
.aeria-grid { column-gap: 100px; }
.aeria-grid h2 { font-size: clamp(40px, 4vw, 58px); }
.aeria-section h2 em, .eyebrow.light { color: #d7bb8c; }
.boarding-pass { transform: rotate(1deg); background: #fbf8ee; border: 1px solid #ffffff30; border-radius: 5px; padding: 36px; box-shadow: 0 24px 70px #071d2445; }
.perforation { margin-inline: -36px; }
.pass-top { color: #6c776b; }
.pass-bottom { background: #e9eddf; }
.agency-note { opacity: .75; }
.points-grid { gap: 70px; }
.rate-feature { padding-block: 30px; }
.rate-feature>strong { color: var(--coral); font-weight: 400; }
.rate-feature h3 { font-family: var(--display); font-size: 25px; }
.rate-feature p { line-height: 1.75; }
.timing-note { border-radius: 3px; background: #eff1e9; padding: 27px 30px; }
.stars-section { background: #f1ede4; }
.stars-grid { gap: 55px 85px; }
.giant-star { color: #b18c55; text-shadow: 10px 14px 0 #d4c29e45; }
.mission { background: #fffdf7; padding: 16px 21px; border: 1px solid #e4ded0; border-radius: 2px; box-shadow: 0 12px 32px #6656320c; }
.mission>span { color: #987b4e; }
.constellation-photo { border-radius: 3px; }
.constellation-content { padding-top: 65px; }
.orbit-core { background: var(--navy); box-shadow: 0 10px 25px #17342f15; }
.orbit i { color: #a78550; }
.redeem-section { padding-block: 105px; background: #e9eee6; }
.important { background: #fafbf6; border-left: 2px solid #af9060; padding: 38px; box-shadow: 0 14px 40px #17342f06; }
.important .number { color: #8b6e48; }
.steps { gap: 45px; }
.steps>div { border-top-color: #b6c0ac; padding-top: 25px; }
.steps>div>span { color: #a18659; }
.steps h3 { font-family: var(--display); font-size: 25px; }
.steps p { line-height: 1.85; }
.faq-section { background: #f1f2ec; }
.accordions details { padding-block: 24px; border-color: #d6dccf; }
.accordions summary { font-size: 14px; font-weight: 500; }
.accordions details>div { line-height: 1.9; }
.form-panel { background: #fffefa; padding: 40px; border: 1px solid #dce1d4; border-radius: 4px; box-shadow: 0 18px 55px #17342f08; }
.form-panel h3 { font-size: 33px; }
form input, form select, form textarea { border-radius: 2px; background: #f8f9f4; border-color: #d8dfd0; padding: 13px; }
form input { height: 48px; }
form label { font-size: 12px; }
.advisor>span { border-color: #c4b18e; color: #947746; }
.last-word { background: var(--navy); padding: 85px 0 90px; position: relative; overflow: hidden; border-bottom: 1px solid #ffffff14; }
.last-word .wrap>span { color: #c4a674; font-size: 42px; }
.last-word p { max-width: 850px; font-size: clamp(36px, 4.3vw, 62px); margin-block: 25px 35px; }
.last-word em { color: #dfc59c; }
.footer { background: #f3f2eb; padding-top: 72px; }
.footer-grid { padding-bottom: 55px; }
.footer h2 { color: #536653; font-size: 11px; letter-spacing: .06em; }
.footer-links>a { padding-block: 7px; }
.footer-brand .footer-tagline { font-size: 26px; }
.footer-bottom { border-color: #d7ddcf; }
.mobile-cta>a:last-child { background: #f0e7d4; color: var(--navy); animation: none; }
@media(max-width:1150px) {
  .desktop-nav { gap: 15px; }
  .nav { gap: 18px; }
  .brand, .brand img { max-width: 170px; }
  .hero-intro { gap: 45px; }
  .hero-copy .button { font-size: 11px; gap: 15px; }
  .world { padding: 28px 24px; }
  .world:last-child { padding-right: 24px; }
  .points-grid, .aeria-grid { column-gap: 45px; }
}
@media(max-width:900px) {
  .wrap { width: calc(100% - 64px); }
  .section { padding-block: 85px; }
  .nav { height: 76px; }
  .hero-intro { padding-block: 48px; gap: 28px; }
  .hero h1 { font-size: 52px; }
  .hero-copy { padding-left: 25px; }
  .hero-copy>p:first-child { font-size: 16px; }
  .benefit-strip { padding-inline: 32px; }
  .world { padding: 25px 20px; }
  .world:last-child { padding-right: 20px; }
  .world h3 { font-size: 26px; }
  .world p { font-size: 12px; min-height: 90px; }
  .aeria-section, .redeem-section { padding-block: 80px; }
  .stars-grid { gap: 35px; }
  .mission { padding: 12px; }
}
@media(max-width:680px) {
  .wrap { width: calc(100% - 44px); }
  .section { padding-block: 68px; }
  .nav { height: 72px; }
  .brand, .brand img { max-width: 170px; }
  .hero-picture { margin: 0; width: 100%; }
  .hero-picture>img { aspect-ratio: 1400 / 429; height: auto; }
  .hero-intro { padding-block: 38px; display: block; }
  .hero h1 { font-size: clamp(43px, 10vw, 60px); }
  .hero-copy { padding: 0; margin-top: 26px; }
  .hero-copy>p:first-child { font-size: 18px; }
  .hero-copy .button { font-size: 12px; padding: 18px 14px; }
  .benefit-strip { width: 100%; padding: 24px 22px; gap: 18px; }
  .benefit-strip>div { padding: 0; }
  h2, .stars-grid h2, .contact-section h2 { font-size: 39px; }
  .eyebrow { font-size: 9px; letter-spacing: .15em; }
  .three-worlds { margin-top: 30px; }
  .world, .world:last-child { padding: 26px 20px; border-right: 0; }
  .world:last-child { border-bottom: 0; }
  .world-icon { font-size: 40px; height: auto; }
  .star-icon { font-size: 49px; }
  .world h3 { font-size: 27px; }
  .world p { min-height: 0; font-size: 13px; margin-right: 15px; }
  .world .round-arrow, .world:last-child .round-arrow { right: 14px; bottom: 20px; width: 29px; height: 29px; }
  .aeria-section { padding: 65px 0 30px; }
  .aeria-grid { gap: 35px; }
  .aeria-grid h2 { font-size: 40px; }
  .boarding-pass { padding: 28px; }
  .perforation { margin-inline: -28px; }
  .points-grid { gap: 30px; }
  .timing-note { padding: 23px; }
  .stars-grid { gap: 30px; }
  .mission { padding: 12px 14px; }
  .constellation-content { padding-top: 32px; }
  .constellation-content h2 { font-size: 36px; }
  .redeem-section { padding-block: 65px; }
  .important { padding: 28px; }
  .steps { gap: 28px; }
  .steps h3 { font-size: 23px; }
  .form-panel { padding: 27px 22px; }
  .form-panel h3 { font-size: 29px; }
  .form-row { gap: 12px; }
  form label { font-size: 11px; }
  .last-word { padding: 60px 0 65px; }
  .last-word p { font-size: 37px; }
  .footer { padding: 46px 0 calc(100px + env(safe-area-inset-bottom)); }
  .footer-grid { padding-bottom: 30px; }
}
@media(prefers-reduced-motion:reduce) { .button:hover { transform: none; } }

/* Cinematic resort interludes. Assets are fictional inspiration scenes. */
.resort-scene { position: relative; isolation: isolate; min-height: clamp(540px, 49vw, 760px); display: flex; align-items: flex-end; overflow: hidden; background: #17342f; color: #fffdf5; }
.scene-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.resort-scene::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #071e24a6, #071e2420 75%), linear-gradient(0deg, #071e248c, transparent 65%); }
.scene-content { padding-block: 90px; }
.scene-content h2 { font-size: clamp(46px, 5.4vw, 82px); max-width: 750px; line-height: 1.09; text-shadow: 0 2px 25px #0002; }
.scene-content h2 em { color: #e8c99a; }
.scene-content>p:not(.eyebrow) { font-size: 15px; line-height: 1.9; color: #f1f1e8; margin: 27px 0 29px; }
.scene-content .button { background: #faf8f0; color: #17342f; }
.scene-caption { position: absolute; bottom: 20px; right: 28px; font-size: 8px; letter-spacing: .17em; color: #fffdf1cf; }
.resort-editorial { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 0; padding-block: 100px 0; }
.resort-editorial-photo { position: relative; min-width: 0; overflow: hidden; background: #d5c9af; }
.resort-editorial-photo img { width: 100%; height: 590px; object-fit: cover; object-position: 42% center; }
.resort-editorial-photo::after { content: ''; position: absolute; inset: 60% 0 0; background: linear-gradient(transparent, #102c3055); pointer-events: none; }
.resort-editorial-photo .scene-caption { z-index: 1; right: 20px; font-size: 7px; }
.resort-editorial-copy { position: relative; margin-left: -45px; background: var(--paper); padding: 56px 0 56px 55px; }
.resort-editorial-copy h2 { font-size: clamp(36px, 3.6vw, 54px); }
.resort-editorial-copy>p:not(.eyebrow) { font-size: 14px; color: var(--muted); line-height: 1.95; max-width: 360px; margin: 26px 0 14px; }
.last-word { background: linear-gradient(#102c30b8, #102c30db), url('resort-infinity.webp') center 52% / cover; }
@media(max-width:900px) {
  .resort-scene { min-height: 580px; }
  .scene-content { padding-block: 70px; }
  .resort-editorial { padding-top: 80px; }
  .resort-editorial-photo img { height: 510px; }
  .resort-editorial-copy { padding: 35px 0 35px 30px; margin-left: -25px; }
}
@media(max-width:680px) {
  .resort-scene { min-height: 620px; }
  .scene-image { object-position: 57% center; }
  .resort-scene::before { background: linear-gradient(0deg,#071e24dc, #071e2425 90%); }
  .scene-content { padding-block: 75px 65px; }
  .scene-content h2 { font-size: clamp(42px, 10vw, 58px); }
  .scene-content>p:not(.eyebrow) { font-size: 14px; }
  .scene-content>p:not(.eyebrow) br { display: none; }
  .scene-caption { font-size: 7px; right: 22px; bottom: 17px; }
  .resort-editorial { display: block; padding-top: 60px; }
  .resort-editorial-photo img { height: 430px; }
  .resort-editorial-copy { margin: -35px 0 0 18px; padding: 30px 0 0 25px; }
  .resort-editorial-copy h2 { font-size: 37px; }
  .resort-editorial-copy>p:not(.eyebrow) { margin-top: 22px; }
  .resort-editorial-photo .scene-caption { bottom: 48px; }
}

/* Points section without the retired estimator. */
.points-grid { display: block; margin-top: 45px; }
.rates { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.rate-feature { min-width: 0; align-items: center; gap: 22px; }
.flight-rates, .rates>.fine-print, .rates>.text-link { grid-column: 1 / -1; }
.rates>.text-link { justify-self: start; }
@media(max-width:680px) {
  .points-grid { margin-top: 28px; }
  .rates { display: block; }
}
