.section-nav {
  position:fixed!important;
  top:50%!important;
  right:1.15rem!important;
  z-index:60!important;
  width:44px!important;
  padding:.4rem .25rem!important;
  display:grid!important;
  gap:.1rem!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  transform:translateY(-50%)!important;
  overflow:visible!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity 220ms ease,visibility 220ms ease!important;
}

.section-nav.has-entered-intentions {
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

.section-nav a {
  position:relative!important;
  width:44px!important;
  min-height:38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:.75rem!important;
  margin-left:auto!important;
  padding:.35rem .3rem!important;
  color:#171d16!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  text-shadow:none!important;
  transition:color 220ms ease!important;
}

.section-nav .section-nav-dot {
  order:2!important;
  flex:0 0 auto!important;
  width:8px!important;
  height:8px!important;
  border-radius:50%!important;
  background:#171d16!important;
  opacity:1!important;
  box-shadow:none!important;
  transition:background-color 220ms ease,transform 180ms ease!important;
}

.section-nav .section-nav-label {
  position:absolute!important;
  right:31px!important;
  top:50%!important;
  transform:translate(6px,-50%)!important;
  width:max-content!important;
  max-width:260px!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  text-align:right!important;
  font-family:var(--font-body)!important;
  font-size:.78rem!important;
  line-height:1.2!important;
  transition:opacity 180ms ease,transform 180ms ease,visibility 180ms ease!important;
}

.section-nav:hover .section-nav-label,
.section-nav:focus-within .section-nav-label {
  opacity:1!important;
  visibility:visible!important;
  transform:translate(0,-50%)!important;
}

.section-nav.is-dark a,
.section-nav.is-dark .section-nav-label {
  color:#f4efe5!important;
  text-shadow:none!important;
}

.section-nav.is-dark .section-nav-dot {
  background:#f4efe5!important;
  box-shadow:none!important;
}

.section-nav:not(.is-dark) a,
.section-nav:not(.is-dark) .section-nav-label {
  color:#171d16!important;
  text-shadow:none!important;
}

.section-nav:not(.is-dark) .section-nav-dot {
  background:#171d16!important;
  box-shadow:none!important;
}

/* The Flagship labels stay short while linking to the requested page sections. */
.section-nav[aria-label="The Flagship page sections"] .section-nav-label {
  font-size:0!important;
}
.section-nav[aria-label="The Flagship page sections"] a:nth-child(1) .section-nav-label::after { content:"Intentions"; }
.section-nav[aria-label="The Flagship page sections"] a:nth-child(2) .section-nav-label::after { content:"Itinerary"; }
.section-nav[aria-label="The Flagship page sections"] a:nth-child(3) .section-nav-label::after { content:"Stay"; }
.section-nav[aria-label="The Flagship page sections"] a:nth-child(4) .section-nav-label::after { content:"Food"; }
.section-nav[aria-label="The Flagship page sections"] a:nth-child(5) .section-nav-label::after { content:"Trek"; }
.section-nav[aria-label="The Flagship page sections"] a:nth-child(6) .section-nav-label::after { content:"Reflections"; }
.section-nav[aria-label="The Flagship page sections"] a:nth-child(7) .section-nav-label::after { content:"FAQ"; }
.section-nav[aria-label="The Flagship page sections"] .section-nav-label::after {
  font-family:var(--font-body)!important;
  font-size:.78rem!important;
  line-height:1.2!important;
}

@media (hover:hover) and (pointer:fine) {
  .section-nav:hover .section-nav-dot,
  .section-nav:focus-within .section-nav-dot { transform:scale(1.08); }
}

.back-to-top {
  position:fixed;
  right:1.25rem;
  bottom:1.25rem;
  z-index:45;
  width:3rem;
  height:3rem;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid #171d16;
  border-radius:999px;
  background:rgba(244,239,229,.9);
  color:#171d16;
  font-family:var(--font-display);
  font-size:1.65rem;
  line-height:1;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  backdrop-filter:blur(5px);
  box-shadow:0 8px 26px rgba(7,18,11,.12);
  transition:opacity 220ms ease,visibility 220ms ease,transform 220ms ease,background-color 220ms ease,color 220ms ease,border-color 220ms ease;
}

.back-to-top.is-visible {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

.back-to-top.is-dark {
  border-color:#f4efe5;
  background:rgba(24,48,31,.88);
  color:#f4efe5;
  box-shadow:0 8px 26px rgba(7,18,11,.26);
}

@media (hover:hover) and (pointer:fine) {
  .back-to-top:hover { transform:translateY(-2px); }
  .back-to-top.is-dark:hover { background:#f4efe5; color:#18301f; }
  .back-to-top:not(.is-dark):hover { background:#171d16; color:#f4efe5; }
}

/* The Flagship accommodation section mirrors the restrained motion used on To Be Free. */
body.flagship-page .accommodation-section .accommodation-heading,
body.flagship-page .accommodation-section .accommodation-body,
body.flagship-page .accommodation-section .accommodation-portrait,
body.flagship-page .accommodation-gallery .accommodation-landscape {
  opacity:0;
  transform:translateY(16px);
  transition:opacity 780ms cubic-bezier(.2,.65,.25,1),transform 780ms cubic-bezier(.2,.65,.25,1);
  will-change:transform,opacity;
}

body.flagship-page .accommodation-section.is-in-view .accommodation-heading,
body.flagship-page .accommodation-section.is-in-view .accommodation-body,
body.flagship-page .accommodation-section.is-in-view .accommodation-portrait,
body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape {
  opacity:1;
}

body.flagship-page .accommodation-section.is-in-view .accommodation-heading { transform:translateY(0); transition-delay:0ms; }
body.flagship-page .accommodation-section.is-in-view .accommodation-body { transform:translateY(0); transition-delay:100ms; }
body.flagship-page .accommodation-section.is-in-view .accommodation-portrait {
  transform:translateY(var(--accommodation-drift,0px));
  transition-delay:140ms;
}
body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape { transform:translateY(0); }
body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape:nth-child(1) { transition-delay:0ms; }
body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape:nth-child(2) { transition-delay:70ms; }
body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape:nth-child(3) { transition-delay:140ms; }
body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape:nth-child(4) { transition-delay:210ms; }

@media (max-width:900px) {
  .section-nav { display:none!important; }
  .back-to-top { right:.9rem; bottom:.9rem; width:2.75rem; height:2.75rem; font-size:1.45rem; }
  body.flagship-page .accommodation-section .accommodation-heading,
  body.flagship-page .accommodation-section .accommodation-body,
  body.flagship-page .accommodation-section .accommodation-portrait,
  body.flagship-page .accommodation-gallery .accommodation-landscape {
    transform:translateY(10px);
  }
  body.flagship-page .accommodation-section.is-in-view .accommodation-heading,
  body.flagship-page .accommodation-section.is-in-view .accommodation-body,
  body.flagship-page .accommodation-section.is-in-view .accommodation-portrait,
  body.flagship-page .accommodation-gallery-section.is-in-view .accommodation-landscape {
    transform:translateY(0);
  }
}

@media (prefers-reduced-motion:reduce) {
  .back-to-top,.section-nav,.section-nav a,.section-nav .section-nav-dot,.section-nav .section-nav-label { transition:none!important; }
  body.flagship-page .accommodation-section .accommodation-heading,
  body.flagship-page .accommodation-section .accommodation-body,
  body.flagship-page .accommodation-section .accommodation-portrait,
  body.flagship-page .accommodation-gallery .accommodation-landscape {
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}
