@font-face{
  font-family:'EpsilonCTT';
  src:url('/assets/fonts/EpsilonCTT.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* Compact section handoff: every lower layer sits above the previous one. */
.catalog-sections{padding-bottom:clamp(24px,2.2vw,38px)!important}
.hero-followthrough{height:0!important;min-height:0!important;background:none!important}
.altair-footer{z-index:30;margin-top:-36px}
.altair-footer-scene{
  --footer-wave-offset:clamp(58px,5vw,78px)!important;
  min-height:650px;
  background-position:center top!important;
}
.footer-top-shell{
  min-height:505px!important;
  padding-top:calc(24px + var(--footer-wave-offset))!important;
}
.footer-map-card{top:calc(122px + var(--footer-wave-offset))!important}
.footer-nearby-title{
  position:absolute!important;
  width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;border:0!important;
}
.footer-places--orbit{
  position:relative!important;
  display:block!important;
  height:320px;
  margin:0!important;
  overflow:visible!important;
}
.footer-places--orbit .footer-place{
  display:block;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  position:absolute;
  width:var(--size);
  min-width:0;
  overflow:visible;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  transform:none;
  transition:none;
}
.footer-places--orbit .place-photo{
  position:relative;
  width:var(--size);
  height:var(--size);
  border-radius:50%;
  overflow:hidden;
  border:4px solid rgba(255,255,255,.84);
  box-shadow:0 13px 28px rgba(79,39,18,.16);
  background:#eee1d8;
  transition:transform .35s ease,box-shadow .35s ease;
}
.footer-places--orbit .place-photo-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transform:scale(1.02);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .4s ease;
}
.footer-places--orbit .footer-place:hover .place-photo{
  transform:scale(1.07) rotate(var(--hover-rot,0deg));
  box-shadow:0 18px 34px rgba(79,39,18,.22);
}
.footer-places--orbit .footer-place:hover .place-photo-img{
  transform:scale(1.10);
  filter:saturate(1.06) contrast(1.03);
}
.footer-places--orbit .place-caption{
  position:absolute;
  display:block;
  left:var(--label-left);
  top:var(--label-top);
  width:var(--label-width);
  min-height:0;
  padding:0;
  pointer-events:none;
}
.footer-places--orbit .place-caption h3{
  margin:0;
  color:#d8aa83;
  font:400 var(--label-size)/.92 'EpsilonCTT','Segoe Print','Comic Sans MS',cursive;
  letter-spacing:.005em;
  white-space:normal;
  text-shadow:0 1px 0 rgba(255,255,255,.42);
}
.footer-places--orbit .place-arrow{display:none!important}

.place--beach{--size:112px;left:-1%;top:4px;--label-left:4px;--label-top:118px;--label-width:130px;--label-size:32px;--hover-rot:-2deg}
.place--mud{--size:176px;left:11%;top:88px;--label-left:-12px;--label-top:-70px;--label-width:260px;--label-size:34px;--hover-rot:1.5deg}
.place--lotus{--size:138px;left:37%;top:66px;--label-left:-42px;--label-top:143px;--label-width:235px;--label-size:34px;--hover-rot:-1deg}
.place--waterpark{--size:84px;left:57%;top:126px;--label-left:-44px;--label-top:-58px;--label-width:180px;--label-size:32px;--hover-rot:2deg}
.place--dolphin{--size:144px;left:69%;top:54px;--label-left:-36px;--label-top:150px;--label-width:215px;--label-size:33px;--hover-rot:-1.5deg}
.place--taman{--size:126px;left:86%;top:94px;--label-left:-26px;--label-top:132px;--label-width:190px;--label-size:32px;--hover-rot:1deg}

.footer-contacts{margin-top:10px!important}
.footer-contacts h2{margin-bottom:18px!important}

@media(max-width:1250px) and (min-width:951px){
  .altair-footer{margin-top:-30px}
  .footer-places--orbit{height:295px}
  .place--beach{--size:92px;left:0%;top:8px;--label-top:98px;--label-size:27px}
  .place--mud{--size:148px;left:11%;top:82px;--label-top:-58px;--label-size:29px}
  .place--lotus{--size:116px;left:36%;top:66px;--label-left:-32px;--label-top:120px;--label-size:29px}
  .place--waterpark{--size:72px;left:57%;top:118px;--label-top:-50px;--label-size:27px}
  .place--dolphin{--size:122px;left:69%;top:52px;--label-top:126px;--label-size:28px}
  .place--taman{--size:105px;left:86%;top:88px;--label-top:109px;--label-size:27px}
}

@media(max-width:950px){
  .altair-footer{margin-top:-24px}
  .altair-footer-scene{--footer-wave-offset:54px!important;min-height:0}
  .footer-top-shell{padding-top:calc(18px + var(--footer-wave-offset))!important}
  .footer-map-card{top:auto!important}
  .footer-places--orbit{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:150px!important;
    gap:22px!important;
    height:245px;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:4px 6px 18px!important;
    scroll-snap-type:x mandatory;
  }
  .footer-places--orbit .footer-place{
    position:relative!important;
    left:auto!important;top:auto!important;
    width:150px!important;
    height:220px;
    scroll-snap-align:start;
    --size:116px!important;
    --label-left:0px!important;
    --label-top:126px!important;
    --label-width:150px!important;
    --label-size:27px!important;
  }
  .footer-places--orbit .place-photo{margin:0 auto}
  .footer-places--orbit .place-caption{text-align:center}
  .footer-contacts{margin-top:18px!important}
}

@media(max-width:660px){
  .catalog-sections{padding-bottom:22px!important}
  .altair-footer{margin-top:-30px}
  .altair-footer-scene{--footer-wave-offset:34px!important}
  .footer-top-shell{padding-top:calc(16px + var(--footer-wave-offset))!important}
  .footer-places--orbit{
    grid-auto-columns:132px!important;
    gap:17px!important;
    height:220px;
    padding-inline:0!important;
  }
  .footer-places--orbit .footer-place{
    width:132px!important;
    height:202px;
    --size:104px!important;
    --label-top:112px!important;
    --label-width:132px!important;
    --label-size:24px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .footer-places--orbit .place-photo,
  .footer-places--orbit .place-photo-img{transition:none!important}
}

/* 2026-09-30 — tighter vertical rhythm + soft background handoffs. */
@media(min-width:1201px){
  .about-altair{height:clamp(820px,56vw,880px)!important}
  .about-offers-placeholders{margin-top:18px!important}
  .about-offer-placeholder{min-height:clamp(205px,16vw,250px)!important}
}
@media(min-width:901px) and (max-width:1200px){
  .about-altair{height:clamp(820px,72vw,900px)!important}
  .about-offers-placeholders{margin-top:16px!important}
}
.catalog-sections{
  margin-top:clamp(-108px,-6vw,-78px)!important;
  padding-top:clamp(34px,2.8vw,52px)!important;
  background:transparent!important;
}
.catalog-sections::after{
  top:0!important;
  bottom:0!important;
  background:
    linear-gradient(180deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.72) 8%,
      rgba(255,255,255,.98) 17%,
      #fff 48%,
      rgba(255,249,245,.96) 72%,
      rgba(250,236,226,.92) 100%)!important;
}
.catalog-sections::before{
  left:0!important;right:0!important;top:0!important;bottom:0!important;
  height:auto!important;border-radius:0!important;transform:none!important;
  background:
    radial-gradient(85% 28% at 52% 6%,rgba(248,225,204,.30),rgba(248,225,204,0) 72%),
    linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(248,232,219,.08) 34%,rgba(244,222,205,.22) 100%)!important;
  filter:blur(18px);
}
.catalog-shell{z-index:4!important}
.catalog-sections + .hero-followthrough{height:0!important;background:transparent!important}
.altair-footer{
  margin-top:-18px!important;
}
.altair-footer-scene::before{
  content:"";
  position:absolute;
  z-index:1;
  left:0;right:0;top:0;
  height:150px;
  pointer-events:none;
  background:linear-gradient(180deg,
    rgba(250,236,226,.94) 0%,
    rgba(250,236,226,.66) 24%,
    rgba(247,236,229,.26) 62%,
    rgba(247,236,229,0) 100%);
  filter:blur(8px);
}
.footer-top-shell,.footer-dark{position:relative;z-index:2}
@media(max-width:900px){
  .catalog-sections{margin-top:110px!important;padding-top:34px!important}
  .altair-footer{margin-top:-12px!important}
  .altair-footer-scene::before{height:110px}
}

/* Final spacing correction: keep services close, but never overlapping the promo cards. */
@media(min-width:1201px){
  .catalog-sections{margin-top:clamp(-24px,-1.2vw,-10px)!important}
}
@media(min-width:901px) and (max-width:1200px){
  .catalog-sections{margin-top:-18px!important}
}

/* Keep the services block directly after promos, with a small breathing gap. */
@media(min-width:1201px){
  .catalog-sections{margin-top:100px!important}
}
@media(min-width:901px) and (max-width:1200px){
  .catalog-sections{margin-top:72px!important}
}

/* Calibrated desktop spacing after live render check. */
@media(min-width:1201px){
  .catalog-sections{margin-top:205px!important}
}
@media(min-width:901px) and (max-width:1200px){
  .catalog-sections{margin-top:150px!important}
}

/* Layer hierarchy: each following section travels slightly faster and covers the previous one. */
.catalog-sections{
  transform:translate3d(0,var(--catalog-section-y,0px),0)!important;
  will-change:transform;
}
.altair-footer{
  transform:translate3d(0,var(--footer-section-y,0px),0);
  will-change:transform;
}
@media(prefers-reduced-motion:reduce){
  .catalog-sections,.altair-footer{transform:none!important;will-change:auto!important}
}

/* Calibrated handoff with active layered parallax. */
@media(min-width:1201px){
  .catalog-sections{margin-top:75px!important}
}
@media(min-width:901px) and (max-width:1200px){
  .catalog-sections{margin-top:52px!important}
}


/* 2026-10-01 — final nearby rhythm: equal columns, one broad wave, centered captions. */
@media(min-width:951px){
  .footer-places--orbit{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    align-items:start!important;
    gap:0!important;
    height:300px!important;
    padding:0 10px!important;
    overflow:visible!important;
  }
  .footer-places--orbit .footer-place{
    position:relative!important;
    left:auto!important;
    top:var(--wave-y,0px)!important;
    width:100%!important;
    height:230px!important;
  }
  .footer-places--orbit .place-photo{
    margin:0 auto!important;
  }
  .footer-places--orbit .place-caption{
    left:50%!important;
    top:calc(var(--size) + 12px)!important;
    width:min(92%,190px)!important;
    transform:translateX(-50%)!important;
    text-align:center!important;
  }
  .footer-places--orbit .place-caption h3{
    line-height:.92!important;
  }
  .place--beach{--size:112px;--wave-y:18px}
  .place--mud{--size:162px;--wave-y:38px}
  .place--lotus{--size:136px;--wave-y:76px}
  .place--waterpark{--size:88px;--wave-y:108px}
  .place--dolphin{--size:142px;--wave-y:70px}
  .place--taman{--size:124px;--wave-y:54px}
}
@media(max-width:1250px) and (min-width:951px){
  .footer-places--orbit{height:282px!important;padding:0 6px!important}
  .footer-places--orbit .place-caption{width:min(94%,160px)!important}
  .place--beach{--size:92px;--wave-y:18px;--label-size:27px}
  .place--mud{--size:132px;--wave-y:40px;--label-size:29px}
  .place--lotus{--size:110px;--wave-y:72px;--label-size:29px}
  .place--waterpark{--size:78px;--wave-y:102px;--label-size:27px}
  .place--dolphin{--size:116px;--wave-y:66px;--label-size:28px}
  .place--taman{--size:104px;--wave-y:50px;--label-size:27px}
}


/* 2026-10-01 gap-aware composition: equal edge gaps for different circle diameters. */
@media(min-width:951px){
  .footer-places--orbit{
    display:flex!important;
    justify-content:space-between!important;
    align-items:flex-start!important;
    gap:0!important;
    height:300px!important;
    padding:0!important;
  }
  .footer-places--orbit .footer-place{
    position:relative!important;
    left:auto!important;
    top:var(--wave-y,0px)!important;
    flex:0 0 var(--size)!important;
    width:var(--size)!important;
    height:230px!important;
  }
  .footer-places--orbit .place-photo{
    margin:0!important;
  }
  .footer-places--orbit .place-caption{
    left:50%!important;
    top:calc(var(--size) + 10px)!important;
    width:max-content!important;
    max-width:210px!important;
    transform:translateX(-50%)!important;
    text-align:center!important;
  }
  .footer-places--orbit .place-caption h3{
    font-size:26px!important;
    line-height:.92!important;
    white-space:nowrap!important;
  }

  .place--beach{--size:112px;--wave-y:18px}
  .place--mud{--size:162px;--wave-y:38px}
  .place--lotus{--size:136px;--wave-y:76px}
  .place--waterpark{--size:88px;--wave-y:108px}
  .place--dolphin{--size:142px;--wave-y:70px}
  .place--taman{--size:124px;--wave-y:54px}

  .place--waterpark .place-caption{top:-34px!important}
  .place--dolphin .place-caption{top:-36px!important}
  .place--dolphin .place-caption h3{font-size:24px!important}
  .place--taman .place-caption h3{font-size:25px!important}
}
@media(max-width:1250px) and (min-width:951px){
  .footer-places--orbit{height:282px!important}
  .footer-places--orbit .place-caption{
    top:calc(var(--size) + 8px)!important;
    max-width:165px!important;
  }
  .footer-places--orbit .place-caption h3{
    font-size:23px!important;
  }
  .place--beach{--size:clamp(78px,7.5vw,90px);--wave-y:16px}
  .place--mud{--size:clamp(110px,10.5vw,135px);--wave-y:32px}
  .place--lotus{--size:clamp(92px,8.5vw,110px);--wave-y:60px}
  .place--waterpark{--size:clamp(66px,5.8vw,72px);--wave-y:92px}
  .place--dolphin{--size:clamp(98px,9vw,116px);--wave-y:58px}
  .place--taman{--size:clamp(86px,8vw,100px);--wave-y:42px}

  .place--waterpark .place-caption{top:-28px!important}
  .place--dolphin .place-caption{top:-30px!important}
  .place--dolphin .place-caption h3{font-size:21.5px!important}
  .place--taman .place-caption h3{font-size:22.5px!important}
}


/* 2026-10-01 — captions below every circle + independent pair parallax. */
@media(min-width:951px){
  .footer-places--orbit .footer-place{
    transform:translate3d(0,var(--place-parallax-y,0px),0)!important;
    will-change:transform;
  }
  .footer-places--orbit .place-caption,
  .place--waterpark .place-caption,
  .place--dolphin .place-caption{
    top:calc(var(--size) + 10px)!important;
  }
  .place--waterpark .place-caption h3{font-size:24px!important}
  .place--dolphin .place-caption h3{font-size:23.5px!important}
  .place--taman .place-caption h3{font-size:24px!important}
}
@media(max-width:1250px) and (min-width:951px){
  .footer-places--orbit .place-caption,
  .place--waterpark .place-caption,
  .place--dolphin .place-caption{
    top:calc(var(--size) + 8px)!important;
  }
  .place--waterpark .place-caption h3{font-size:21.5px!important}
  .place--dolphin .place-caption h3{font-size:20.5px!important}
  .place--taman .place-caption h3{font-size:21.5px!important}
}
@media(prefers-reduced-motion:reduce){
  .footer-places--orbit .footer-place{
    transform:none!important;
    will-change:auto!important;
  }
}


/* 2026-10-01 — nearby heading, entry fade baseline, footer flow compensation. */
.altair-footer{
  margin-bottom:var(--footer-section-y,0px)!important;
}

@media(min-width:951px){
  .footer-nearby{position:relative!important}

  .footer-nearby-title{
    position:absolute!important;
    left:0!important;
    top:-82px!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    clip:auto!important;
    clip-path:none!important;
    white-space:normal!important;
    border:0!important;
    color:#321209!important;
    font:normal clamp(43px,3.8vw,66px)/.95 Georgia,"Times New Roman",serif!important;
    letter-spacing:-.045em!important;
    z-index:5!important;
  }

  html.altair-motion-ready .footer-places--orbit .footer-place[data-place-speed]{
    opacity:0;
  }
}

@media(max-width:950px){
  .footer-nearby-title{
    position:relative!important;
    width:auto!important;
    height:auto!important;
    margin:0 0 18px!important;
    padding:0!important;
    overflow:visible!important;
    clip:auto!important;
    clip-path:none!important;
    white-space:normal!important;
    color:#321209!important;
    font:normal clamp(36px,7vw,52px)/.98 Georgia,"Times New Roman",serif!important;
    letter-spacing:-.04em!important;
  }
}


/* The footer is the final page surface: any parallax-exposed tail must stay brown. */
html,body{background:#2c1309!important}
.resort-main{background:#FDF6EE}


/* 2026-10-01 — map visibly overlaps the dark footer while staying above it. */
@media(min-width:951px){
  .footer-map-card{
    top:calc(192px + var(--footer-wave-offset))!important;
    z-index:200!important;
  }
}
@media(max-width:1250px) and (min-width:951px){
  .footer-map-card{
    top:calc(184px + var(--footer-wave-offset))!important;
  }
}


/* 2026-10-01 — final footer trim: no phantom scroll tail, map always above dark footer. */
.altair-footer{
  transform:none!important;
  margin-bottom:0!important;
}

@media(min-width:951px){
  .footer-top-shell{
    z-index:300!important;
  }

  .footer-dark{
    z-index:5!important;
  }

  .footer-map-card{
    z-index:400!important;
  }

  .footer-bottom-shell{
    padding-bottom:8px!important;
  }
}

@media(max-width:950px){
  .footer-bottom-shell{
    padding-bottom:16px!important;
  }
}

/* 2026-10-07 — mobile handoff: keep Services clearly below the promo cards. */
@media(max-width:620px){
  .catalog-sections{margin-top:155px!important}
}
@media(min-width:621px) and (max-width:900px){
  .catalog-sections{margin-top:135px!important}
}

/* 2026-10-07 — tighten the oversized Services gap on wider phones. */
@media(max-width:430px){
  .catalog-sections{margin-top:135px!important}
}
@media(min-width:431px) and (max-width:620px){
  .catalog-sections{margin-top:95px!important}
}
@media(min-width:621px) and (max-width:900px){
  .catalog-sections{margin-top:105px!important}
}


/* 2026-10-08 — nearby captions: smaller and higher contrast */
.footer-places--orbit .place-caption h3{
  color:#9a552f!important;
  text-shadow:0 1px 0 rgba(255,255,255,.18)!important;
}
@media(min-width:1251px){
  .footer-places--orbit .place-caption h3{font-size:21px!important;line-height:.96!important}
  .place--dolphin .place-caption h3{font-size:20px!important}
  .place--taman .place-caption h3{font-size:20px!important}
}
@media(max-width:1250px) and (min-width:951px){
  .footer-places--orbit .place-caption h3{font-size:19px!important;line-height:.96!important}
  .place--dolphin .place-caption h3,.place--taman .place-caption h3{font-size:18px!important}
}

/* 2026-10-16 — close gap left after temporary offers removal. */
@media(min-width:1201px){.catalog-sections{margin-top:-100px!important}}
@media(min-width:901px) and (max-width:1200px){.catalog-sections{margin-top:-70px!important}}

/* 2026-10-16 — final compact spacing after offers are hidden. */
@media(min-width:1201px){.catalog-sections{margin-top:-280px!important}}
@media(min-width:901px) and (max-width:1200px){.catalog-sections{margin-top:-180px!important}}

/* 2026-10-16 — mobile nearby captions: desktop handwriting, 1.5x smaller. */
@media(max-width:660px){
  .footer-places--orbit .place-caption h3{
    font-family:'EpsilonCTT','Segoe Print','Comic Sans MS',cursive!important;
    font-size:16px!important;
    line-height:.96!important;
    letter-spacing:.005em!important;
    font-weight:400!important;
  }
}
